排序算法特点分析

排序法平均时间最差情况稳定性额外空间备注
直接插入 O ( n 2 ) O(n^2) O(n2) O ( n 2 ) O(n^2) O(n2)稳定O(1)大部分已排序时较好
shell O ( n 1.3 ) O(n^{1.3}) O(n1.3) O ( n 2 ) O(n^2) O(n2)不稳定O(1)时间复杂度计算复杂,网上有多种说法
直接选择 O ( n 2 ) O(n^2) O(n2) O ( n 2 ) O(n^2) O(n2)不稳定O(1)时间复杂度与初始序列无关
堆排序O(nlogn)O(nlogn)不稳定O(1)可以快速选出最小(最大)的几个数字;时间复杂度与初始序列无关
冒泡排序 O ( n 2 ) O(n^2) O(n2) O ( n 2 ) O(n^2) O(n2)稳定O(1)n较小时较好
快速排序O(nlogn)O(nlogn)不稳定O(nlogn)已经完全有序的时候,最费时
基数排序O(d(r+n)O(d(r+n)稳定O(n)d是关键字位数,r是进制
归并排序O(nlogn)O(nlogn)稳定O(n)外部排序算法,适合n很大很大很大很大,大到内存一次装不下时使用;归并趟数 ⌈ l o g k n ⌉ \lceil log_k n\rceil logkn,k是归并路数,n是初始归并段

辅助记忆:改进后的算法们O(nlogn)比改进前O(n2)的速度更快,但牺牲了稳定性。直接选择排序是最拉胯的排序,最好最坏都是O(n2),还tm的不稳定。只有快速排序、归并排序和基数排序需要额外空间。堆排序虽然是不稳定的排序,但时间上很稳定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值