目标:理解选择排序每一轮如何在未排序区间中找最小值,并放到当前起点位置。
public static void selectionSort(int[] a) {
int n = a.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (a[j] < a[minIndex]) {
minIndex = j;
}
}
int temp = a[i];
a[i] = a[minIndex];
a[minIndex] = temp;
}
}
选择排序每轮做同一件事:从“未排序区间”里选出最小值,放到这轮的起点位置 i。
一句话记忆:每轮“找最小 + 放前面”,直到倒数第二个位置。
结论:选择排序的优势是“实现简单、交换少”,弱点是“比较次数多、整体偏慢”。
最终有序数组
3 条记忆要点