1、插入排序
最佳情况:O(n)
最差情况:O(nlgn)
平均情况:O(nlgn)
2、选择排序
在所有情况下的时间复杂度均为O(n*n)
3、冒泡排序
最佳情况:O(n)
最差情况:O(n*n)
平均情况:O(n*n)
4、归并排序
所有情况下的时间复杂度均为O(nlgn)
5、快速排序
最佳情况:O(nlgn)
最差情况:O(n*n)
平均情况:O(nlgn)
6、堆排序
所有情况下的时间复杂度均为O(nlgn)
注:
(a) 比较排序
比较排序:在排序的最终结果中,各元素的次序依赖于它们之间的比较。前面6种算法都是比较排序算法。
(b) 排序算法的下界
在最坏情况下,任何比较排序算法都需要做欧米茄(nlgn)次比较。
(c) 堆排序和归并排序都是渐进最优的比较排序算法。