文章目录
- 排序的基本概念
- 排序方法的分类
- 存储结构
排序的基本概念
什么是排序?
- 排序:将一组杂乱无章的数据按照一定规律顺次排列起来。
- 即,讲无序序列排成一个有序序列(有小到大或由大到小)的运算。
- 如果参加排序的数据结点包含多个数据域,那么排序往往是针对其中某个域而言。
排序的应用范围
- 软件中直接应用。
- 程序中间接应用。
- 二分法查找
- 最短路径、最小生成树……
排序方法的分类
- 按数据存储介质:内部排序和外部排序。
- 按比较器个数:串行排序和并行排序。
- 按主要操作:比较排序和基数排序。
- 按辅助空间:原地排序和非原地排序。
- 按稳定性:稳定排序和非稳定排序。
- 按自然性:自然排序和非自然排序。
按存储介质分:
- 内部排序:数据量不大、数据在内存,无序内外交换数据。
- 外部排序:数据量较大、数据在外存(文件排序)。
- 外部排序时,要将数据分批调入内存来排序,中间结果还要及时放入外存,显然外部排序要复杂的多。
按比较器个数分:
- 串行排序:单处理机(同一时刻比较一对元素)。
- 并行排序:多处理机(同一时刻比较多对元素)。
按主要操作分:
- 比较排序:用比较的方法
- 插入排序、交换排序、选择排序、归并排序。
- 基数排序:不比较元素的大小,仅仅根据元素本身的取值确定其有序位置。
按辅助空间分:
- 原地排序:辅助空间用量为 O(1) 的排序方法。
- 所占的辅助存储空间与参加排序的数据量大小无关。
- 非原地排序:辅助空间用量超过 O(1) 的排序方法。
按稳定性分:
- 稳定排序:能够使任何数值相等的元素,排序以后相对位置不变。
- 非稳定性排序:不是稳定排序的方法。
- 排序的稳定性只对结构类型数据排序有意义。
- 结构类型:数据当中包含了多个数据项。
按自然性分:
- 自然排序:输入的数据越有序,排序的速度越快的排序方法。
- 非自然排序:一开始输入的数据比较有序,排序的速度反而慢了的排序方法。