常见排序算法的实现

http://c.chinaitlab.com/special/cpxsf/index.html

 

各排序算法的关系:

直接插入排序————Shell排序

起泡排序——————快速排序                      

选择排序——————堆排序

 

排序算法比较:

 

排序算法

平均时间

最坏情况

辅助存储

简单排序

O(n^2)

O(n^2)

O(1)

快速排序

O(nlog(n))

O(n^2)

O(log(n))

归并排序

O(nlog(n))

O(nlog(n))

O(n)

堆排序

O(nlog(n))

O(nlog(n))

O(1)

基数排序

O(d(n+rd))

O(d(n+rd))

O(rd)

 

就平均时间性能而言,最好的是快速排序,但快速排序的最坏时间比归并和堆排序都要差。上表中的简单排序不包括希尔排序。

快速排序、堆排序、希尔排序等时间性能好的排序算法都是不稳定的。

 

内部排序可以达到的最快速度?

 

任何一个基于比较的内部排序算法,在最坏的情况下需要比较的次数至少为:log2(n!);根据斯特林公式:log2(n!) = o(nlog(n))

 

结论,借助于比较进行排序的算法在最坏情况下能达到的最好的时间复杂度为o(nlog(n))

 

附:关于逆序数:

n个不同自然数的一种排列,我们称此排列中出现前大后小的数对的个数为此排列的逆序数。  的逆序数记为

的逆序数 = 后面< 的数的个数
                                +
后面< 的数的个数
                                + ......
                                +
后面< 的数的个数(0)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值