首页 > 代码库 > 排序算法小结

排序算法小结

经典的排序算法有十种,分别是:选择排序、插入排序、希尔排序、冒泡排序、堆排序、合并排序、快速排序、计数排序、基数排序和桶排序。


下面对这些算法分类如下:

选择排序:简单选择排序、堆排序

插入排序:直接插入排序、二分插入排序、希尔排序

快速排序:快速排序、随机化快速排序

线性时间排序:计数排序、基数排序、桶排序

其他:冒泡排序、合并排序


这些排序排序算法的时间复杂度,稳定性,是否比较排序,是否原地排序等特性总结如下:

排序名称时间复杂度稳定性是否比较排序是否原地排序
简单选择排序O(n^2)不稳定
堆排序O(nlgn)不稳定
直接插入排序O(n^2)稳定
希尔排序O(n^1.5)不稳定
快速排序O(nlgn)不稳定
冒泡排序O(n^2)稳定
合并排序O(nlgn)稳定
计数排序O(n)稳定
基数排序O(n)稳定
桶排序O(n)稳定