一 按平均时间将排序分为四类:
(1) 平方阶(O(n2))排序:冒泡,插入,选择.
(2) 线性对数阶(O(nlgn))排序:快速,归并,堆.
(3) O(n1+£)阶排序, £是介于0和1之间的常数,即0<£<1: 如希尔排序
(4) 线性阶(O(n))排序: 计数, 基数, 桶排序。
二 稳定性方面:
稳定的排序算法:冒泡,选择,插入,归并,计数,基数,桶排序.
非稳定排序算法:快速,堆,希尔排序.
三 是否原地排序:
原地排序:冒泡,选择,插入,快速,堆,希尔排序.
非原地排序:归并,计数,基数,桶排序。
四 不同条件下,排序方法的选择
(1)若n较小(如n≤50),可采用插入或选择排序.
当记录规模较小时,插入排序较好;否则因为选择移动的记录数少于插人,应选选择排序为宜.
(2)若文件初始状态基本有序(指正序), 插人、冒泡或随机的快速排序.
(3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。
五 最差条件下排序复杂度:
待续。。。。。
六 每个算法可改进的地方:
待续。。。。。
七 比较排序和非比较排序: