排序算法总结

        排序算法的学习暂告一段落了,算法与数据结构的学习才刚刚开始,加油!

        排序算法中以冒泡,选择,插入排序最为基础,归并,快速,堆排序最为实用,shell排序是分组插入排序,适合在数据量不大的环境下使用。计数,基数,桶排序均对输入序列有某种假设,且需要一定的额外存储空间,非in place排序算法。

排序算法 平均时间 最差时间 稳定度 额外空间 备注说明
冒泡排序 O(n2) O(n2) 稳定 O(1) n小时较好
选择排序 O(n2) O(n2) 不稳定 O(1) n小时较好
插入排序 O(n2) O(n2) 稳定 O(1) n小时较好
归并排序 O(nlogn) O(nlogn) 稳定 O(n) n大时较好
快速排序 O(nlogn) O(n2) 不稳定 O(logn) n大时较好
堆排序 O(nlogn) O(nlogn) 不稳定 O(1) n大时较好
计数排序 O(n) O(n) 稳定 O(n+k) 输入序列限制
基数排序 O(n) O(n) 稳定 O(n+k) 输入序列限制
桶排序 O(n) O(n) 稳定 O(n) 输入序列限制


你可能感兴趣的:(数据结构,算法,shell,存储,n2)