- 按算法分类
- 插入排序
直接插入排序,希尔排序 - 交换排序
冒泡排序、快速排序 - 选择排序
直接选择排序、堆排序 - 归并排序
- 基数排序
- 按空间、时间复杂度、稳定性
- 按平均时间复杂度分类
- O(n^2)
直接插入排序、直接选择排序和冒泡排序 - O(nlogn)
快速排序、堆排序和归并排序 - O(N^(1+£))
£是介于0和1之间的常数,即0<£<1,如希尔排序; - O(N)
如基数排序、桶排序
- 各种排序方法比较
简单排序中直接插入最好,快速排序最快,当文件为正序时,直接插入和冒泡排序最佳。 - 算法排序的稳定性
(1)稳定:如果存在多个具有相同排序码的记录,经过排序后,这些记录的相对次序仍然保持不变,则这种排序算法是稳定的。
插入排序、冒泡排序、归并排序、基数排序都是稳定排序
(2)不稳定:否则为不稳定排序
直接选择排序、堆排序、shell排序、快速排序都是不稳定排序