1.1 什么是排序
排序是程序开发中的一种非常常见的操作,对一组任意数据元素(或记录)经过指定关键字排序排序操作后,就可以吧它们变为一组按照关键字排序的有序序列。
通常排序的目的是快速查找。
1.2衡量指标
对于一个排序算法来说,一般从以下3个方面来衡量算法的优劣:
- 排序算法的执行消耗
- 排序算法的内存消耗
- 排序算法的稳定性
1.2.1 排序算法的执行效率
对于排序算法的执行效率的分析,一般会从以下几个方面来衡量:
- 最好情况、最坏情况、平均情况时间复杂度
- 时间复杂度的系数、常数、低阶
- 比较次数和交换次数
1.2.2 排序算法的内存消耗
算法的内存消耗可以通过空间复杂度来衡量,排序算法也不例外。
针对排序算法的时间复杂度,还有一种排序为:原地排序。
原地排序算法,就是特指空间复杂度为O(1)的算法。
1.2.3 排序算法的稳定性
针对排序算法,我们还有一个重要的衡量指标:稳定性。
稳定性指:待排序的序列中存在值相等的元素,经过排序之后,相等元素之间的原有先后顺序不变。
例如:
有一组数据:2,9,3,4,8,3
按照大小排序之后就是:2,3,3,4,8,9
这组数据中有俩个3,经过某种排序算法之后,如果俩个3的前后顺序没有改变,那么这种排序算法就叫做稳定的排序算法;如果俩个3的前后顺序发生了变化,那么对应的算法称为不稳定算法。
1.3排序分类
根据现有的排序算法来看,排序大致分为俩类:
- 内部排序:如果整个排序过程不需要借助外部存储器(如磁盘),所有的排序操作都是在内存中完成,这种排序称之为内部排序。
- 外部排序:如果参与排序的数据元素非常多,数据非常大,计算机无法把整个排序过程放在内存中完成,必须借助外部存储器(如磁盘),这种排序称之为外部排序。
2.常见的排序算法
、
将这些常见的排序算法按照时间复杂度可以大致分为三类:

2594

被折叠的 条评论
为什么被折叠?



