已排序区
待排序区
当前最小
?
算法说明简单选择排序(Simple Selection Sort)的基本思想:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子表的最后,直到全部记录排序完毕。
for (i = 0; i < n-1; i++) {
minIdx = i;
for (j = i+1; j < n; j++)
if (a[j] < a[minIdx]) minIdx = j;
if (minIdx != i) swap(a[i], a[minIdx]);
}
时间复杂度 O(n²) 空间复杂度 O(1) 不稳定