挑战七大排序算法-排序

1.排序定义

对一组任意数据元素(或记录)经过指定关键字排序操作后,就可以把它们变成一组按照关键字排序的有序序列。
通常排序的目的是快速查找;平时的上下文中,如果提到排序,通常指升序;通常意义上的排序指的是原地排序;

2.衡量排序的指标

一般从以下三个方面来衡量算法:
(1)执行效率;
(2)内存消耗;
(3)稳定性;

2.1排序算法的执行效率

说简单点,就是时间复杂度的问题

1.最好情况、最坏情况、平均情况时间复杂度

通常我们在分析排序算法时,要分别给出最好情况、最坏情况、平均情况下的时间复杂度问题;
另外,还得清楚最好情况和最坏情况时间复杂度对应的要排序的数据是什么样的。

2.时间复杂度的系数、常数、低阶

其实呢,时间复杂度反应的是数据规模很大时的一个增长趋势,所以在表示时间复杂度时通常忽略系数、常数、低阶;
但是在实际的开发中,可能会接触到小规模数据。
所以在对同一阶时间复杂度的排序算法性能进行对比时,需要考虑系数、常数、低阶。

3.比较次数或交换(或移动)次数

在基于比较的排序算法中,会涉及两种操作:一是元素比较大小,二是元素交换或移动;所以我们在分析排序算法的执行效率的时候,也要考虑比较次数和交换(或移动)次数。

2.2内存消耗

算法的内存消耗可以通过空间复杂度来衡量,排序算法也是;
原地排序:特指空间复杂度为O(1)的排序算法

2.3稳定性

稳定性:如果待排序的序列中存在值相等的元素,经过排序后,相等的元素之间原来的先后顺序不变

呐,快来看看这张图,解释的相当不错哦

挑战七大排序算法-排序

3.排序分类

(1)内部排序:不需要借助外部存储器(磁盘)

(2)外部排序:借助外部存储器(磁盘)

4.常见的七大排序算法

挑战七大排序算法-排序