算法描述:
① 首先在未排序序列中找到最小元素,存放到排序序列的起始位置;
② 从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾;
③ 重复上述步骤,直到序列的最后一个元素。
public class SelectionSort {
public static void main(String[] args) {
System.out.println("=====选择排序=====");
int[] array = new int[]{10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
System.out.println("排序之前:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
//直接插入排序
array = selectionSort(array);
System.out.println("\n");
System.out.println("排序之后:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
public static int[] selectionSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int min = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[min]) {
min = j;
}
}
if (min != i) {
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
return arr;
}
}