选择排序是一种简单直观的排序算法,其基本思想是在未排序的序列中找到最小(或最大)的元素,然后将其放到正确的位置。在Java中实现选择排序时,你可以选择是寻找最小元素还是最大元素进行排序。下面是使用Java实现选择排序的步骤和示例代码:
步骤
1. 遍历数组,将第一个元素视为最小(或最大)值。
2. 依次与后面的元素比较,若有更小(或更大)的元素,则更新最小(或最大)值。
3. 遍历完一次数组后,将找到的最小(或最大)值与第一个元素进行交换。
4. 重复步骤1-3,直到整个数组排序完成。
示例代码(升序排列)
```java
public class SelectionSort {
public static void main(String[] args) {
int[] arr = {6, 3, 8, 2, 9, 1};
selectionSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void selectionSort(int[] array) {
int n = array.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (array[j] < array[minIndex]) {
minIndex = j;
}
}
// 交换最小值和当前位置的元素
int temp = array[minIndex];
array[minIndex] = array[i];
array[i] = temp;
}
}
}
示例代码(降序排列)
```java
public class SelectionSortDescending {
public static void main(String[] args) {
int[] arr = {87, 23, 7, 43, 78, 62, 98, 81, 18, 53, 73, 9};
selectionSortDescending(arr);
System.out.println(Arrays.toString(arr));
}
public static void selectionSortDescending(int[] array) {
int n = array.length;
for (int i = 0; i < n - 1; i++) {
int maxIndex = i;
for (int j = i + 1; j < n; j++) {
if (array[j] > array[maxIndex]) {
maxIndex = j;
}
}
// 交换最大值和当前位置的元素
int temp = array[maxIndex];
array[maxIndex] = array[i];
array[i] = temp;
}
}
}
在上面的代码中,`selectionSort` 方法实现了升序排列,而 `selectionSortDescending` 方法实现了降序排列。你可以根据需要选择使用适当的实现。