排序算法

使一串记录,按照其中的某个或某些关键字的大小,递增或递减排列起来的操作叫作排序。排序算法就是如何使记录按照要求排列的方法。排序算法在很多领域都得到了足够的重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域,考虑到数据的各种限制和规范,要想得到满足实际需要的优秀算法,需要经过大量的推理和分析。
例如:随机输入一个序列的 n 个数,序列为:a1,a2,a3,…,an,通过算法实现输出:n 个数的排列顺序为:a1『,a2』,a3『,…,an』,使得 a1'≤a2'≤a3'≤…≤an『(根据实际需求也可以实现从大到小的排序,方法不唯一)。
1)关于排序算法的一些术语说明:
稳定性:如果 a 原本在 b 前面,而 a=b,那么排序之后 a 仍然在 b 的前面。
不稳定性:如果 a 原本在 b 的前面,而 a=b,那么排序之后 a 可能会出现在 b 的后面。
内排序:所有排序操作都在内存中完成。
外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行。
时间复杂度:一个算法执行所耗费的时间。
空间复杂度:运行完一个程序所需内存的大小。
2)相关排序算法的对比如下:

注释:n 表示数据规模;k 表示「桶」的个数;In-place 表示占用常数内存,不占用额外内存;Out-place 表示占用额外内存。

3)算法根据稳定性分类如下:

posted @ 2020-06-12 15:17  橙宝技术  阅读(146)  评论(0编辑  收藏  举报