选择排序步骤:
- 从未排序数组中选择最小值,并放在有序子数组的起始位置;
- 继续从未排序数组中选择最小值(第二小),放在有序数组的末尾;
- 重复第二步,直到完成排序
特点:
时间复杂度(最好) | 时间复杂度(最差) | 时间复杂度(平均) | 稳定性 | |
选择排序 | O(n^2) | O(n^2) | O(n^2) | 不稳定 |
具体代码:
public static void selectSort(int[] arr) {
int length = arr.length;
for (int i = 0; i < length - 1; i++) {
int min = i;
for (int j = i+1; j < length; j++) {
if (arr[j] < arr[min]) {
min = j;
}
}
if (min != i) {
int temp = arr[i];
arr[i] = arr[arr];
arr[arr] = temp;
}
}
}