8.2.1 直接插入 8.2.2 折半插入 8.2.3 希尔排序 8.3.1 冒泡排序 8.3.2 快速排序 8.3.3 快排优化 8.4.1 简单选择 8.4.2 堆排序 8.4.3 堆操作 8.5.1 归并排序 8.5.2 迭代归并 8.6.1 LSD基数 8.6.2 LSD vs MSD 8.7.1 雷达图 8.7.2 决策器 8.8.1 外部排序 8.8.2 最佳归并树
点击播放开始简单选择排序演示
已排序区 待排序区 当前最小
?
算法说明

简单选择排序(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) 不稳定