一、排序的基本概念
假设含有n个记录的序列为{r1,r2,...,rn},其相应的关键字分别为{k1,k2,...,kn},需确定1,2,...,n的一种排列p1,p2,...,pn,使其相应的关键字满足kp1≤kp2≤...≤kpn非递减(或非递增)关系,及时地序列称为一个按关键字有序的序列{rp1,rp2,...,rpn},这样的操作就称为排序。
二、排序的分类
1.稳定排序与不稳定排序
- 稳定排序:对任意一组数据元素序列,使用某种排序算法对它进行按照关键字的排序,若相同关键字的前后位置关系在排序前与排序后保持一致,则称此排序方法时稳定的。
- 不稳定排序:对任意一组数据元素序列,使用某种排序算法对它进行按照关键字的排序,若相同关键字的前后位置关系在排序前与排序后不能保持一致,则称此排序方法时不稳定的。
例如:关键字序列{3(1),4,2,3(2),1},经过排序算法后变为{1,2,3(1),3(2),4},则次排序方法是稳定的;若变为{1,2,3(2),3(1),4},则次排序方法时不稳定的。
2.内排序与外排序
按照排序过程中所涉及的存储器的不同可分为内排序和外排序。
- 内排序是指待排序序列完全存放在内存中进行的排序过程,这种方法适合数量不太大的数据元素的排序。
- 外排序是指待排序的数据元素非常多,以至于它们必须存储在外部存储器上,这种排序过程中需要在内外存之间多次交换数据才能进行,这样的排序称为外排序。
三、排序算法的性能评价
- 时间性能:排序算法的时间开销是衡量其好坏的最重要的标志。高效率的内排序算法应该是具有尽可能少的关键字比较次数和尽可能少的记录移动次数。
- 辅助空间:辅助存储空间是除了存放待排序所占用的存储空间之外,执行算法所需要的其他存储空间。
- 算法的复杂性:指算法本身的复杂度,而不是指算法的时间复杂度,算法过于复杂也会影响排序的性能。
四、内排序和外排序的举例
- 内排序:插入排序、交换排序、选择排序和归并排序。
- 外排序:磁盘排序中的多路平衡归并排序、置换-选择排序和最优归并树
原文地址:https://www.cnblogs.com/BigJunOba/p/9295644.html
时间: 2024-10-07 14:44:34