===== 基础排序算法 ===== * [[https://www.runoob.com/w3cnote/bubble-sort.html|冒泡排序]] * [[https://www.runoob.com/w3cnote/selection-sort.html|选择排序]] * [[https://www.runoob.com/w3cnote/insertion-sort.html|插入排序]] * [[https://www.runoob.com/w3cnote/shell-sort.html|希尔排序]] ===== 高级排序算法 ===== * [[https://www.runoob.com/w3cnote/merge-sort.html|归并排序]] 自顶向下(递归)、自底向上(迭代) * [[https://www.runoob.com/w3cnote/quick-sort-2.html|快速排序]] 对于有较多重复元素的数组,可使用[[https://www.jianshu.com/p/c61d1e82c44b|三路快排]] ===== 堆和堆排序 ===== [[https://www.runoob.com/w3cnote/heap-sort.html|堆和堆排序]] ===== 其他排序 ===== ===== 总结 ===== {{:sort.png?600|}} ==== 时间复杂度 ==== * 平方阶 (O(n2)) 排序:各类简单排序:直接插入、直接选择和冒泡排序。 * 线性对数阶 (O(nlog2n)) 排序:快速排序、堆排序和归并排序; * O(n1+§)) 排序:§ 是介于 0 和 1 之间的常数。 希尔排序; * 线性阶 (O(n)) 排序:基数排序,此外还有桶、箱排序。 ==== 稳定性 ==== * 稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序。 * 不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序。