排序算法复杂度速查表

 检验一个算法的优劣的很重要一个标准就是其算法复杂度。

各种常用排序算法复杂度表
类别 排序方法 时间复杂度 空间复杂度 稳定性
平均情况 最好情况 最坏情况 辅助存储
插入排序 直接插入 O(n2) O(n)
O(n2) O(1) 稳定
Shell排序 O(n1.3) O(n) O(n2) O(1) 不稳定
选择排序 直接选择 O(n2) O(n2) O(n2) O(1) 不稳定
堆排序 O(nlog2n) O(nlog2n) O(nlog2n) O(1) 不稳定
交换排序 冒泡排序 O(n2) O(n) O(n2) O(1) 稳定
快速排序 O(nlog2n)
O(nlog2n) O(n2) O(nlog2n) 不稳定
归并排序 O(nlog2n)
O(nlog2n) O(nlog2n) O(1) 稳定
基数排序 O(d(r+n))
O(d(n+rd)) O(d(r+n)) O(rd+n) 稳定
注:基数排序的复杂度中,r代表关键字的基数,d代表长度,n代表关键字的个数

 

作者:耑新新,发布于  博客园

转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com

posted on 2017-09-30 20:48  Arthurian  阅读(593)  评论(0编辑  收藏  举报