选择排序的思想是将数组分成已排序和未排序两部分,每次从未排序部分选出最小的元素,放到已排序部分的末尾,使得已排序部分始终有序。选择排序的时间复杂度为O(n^2),它是一种不稳定的排序算法。
public class SelectionSort {
public void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n-1; i++) {
int min_idx = i;
for (int j = i+1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
// 交换arr[i]和arr[min_idx]
int temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
}