您的位置:首页 > 其它

经典排序算法比较

2018-03-12 17:06 99 查看

排序基本概念

排序:将一组杂乱无章的数据按一定的规律顺次排列起来。

数据表( data list)::它是待排序数据对象的有限集合。

排序码(key):通常数据对象有多个属性域,即多个数据成员组成,其中有一个属性域可用来区分对象,作为排序依据。该域即为排序码。每个数据表用哪个属性域作为排序码,要视具体的应用需要而定。

排序算法分析

1. 排序算法的稳定性

如果在元素序列中有两个元素R[i]和R[j],它们的排序码K[i] == k[j],且在排序之前,元素R[i]在R[j]的前面。如果在排序之后,元素R[i]仍在R[j]之前,则称这个排序算法是稳定的,否则称这个排序算法是不稳定的。

2. 排序算法评价依据

时间复杂度

排序的时间复杂度可用算法执行中的数据比较次数与数据移动次数来衡量。

算法运行时间代价的大略估算一般都按平均情况进行估算。对于那些受对象排序码序列初始排列及对象个数影响较大的,需要按最好情况和最坏情况进行估算

空间复杂度

算法所需要附加的存储

经典排序算法

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

http://blog.csdn.net/zhangye3017/article/details/79516062

选择排序:直接选择排序、堆排序

http://blog.csdn.net/zhangye3017/article/details/79516062

交换排序:冒泡排序、快速排序

http://blog.csdn.net/zhangye3017/article/details/79518238

其他排序:归并排序、计数排序

http://blog.csdn.net/zhangye3017/article/details/79532132

排序算法比较

类别直接插入排序希尔排序选择排序堆排序冒泡排序快速排序归并排序
时间复杂度O(n2n2)O(n2n2)O(n2n2)O(nlgn)O(n2n2)O(nlgn)O(nlgn)
空间复杂度O(1)O(1)O(1)O(1)O(1)O(lgn)O(n)
稳定性稳定不稳定不稳定不稳定稳定不稳定稳定
优缺点越接近有序效率越高优化直接插入排序效率最低效率较高,建堆消耗大效率低效率快最稳定算法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  排序算法