排序
假设含n个记录的序列为
{R1,R2,…,Rn}
其对应的关键字序列为
{K1,K2,…,Kn}
这些关键字的排列方式有多种,其中至少有一种排列方式能使得关键字之间存在着这样一个关系:
Kp1 <= Kp2 <= … <= Kpn
按此关系将记录序列重新排列为
{Rp1,Rp2,…,Rpn}
即为有序记录,将这一过程称为排序。
排序方法的稳定性
若在一个记录序列中Ki == Kj,且在排序前的序列中Ri领先于Rj。若在排序后的序列中Ri仍领先于Rj,则称使用的排序方法是稳定的;若排序后的序列中可能使Rj领先于Ri,则称所用的排序方法是不稳定的。
排序方法分类
若整个排序过程不需要访问外存便能完成,则称此类排序为内部排序;反之,待排序的记录数量很大,整个排序过程不能在内存中一次完成,需要借助外存才能实现,则称此类排序为外部排序。
内部排序方法
1.插入排序:将无序序列区中的记录向有序序列区中插入,使有序序列长度增加
2.交换排序:通过比较记录的关键字大小来决定是否交换记录,从而排定记录所在位置
3.归并排序:将两个小的有序记录序列合并成一个大的有序记录序列,逐步增加有序序列长度
4.选择排序:从无序序列区中选出关键字最小(升序排列)或最大(降序排列)的记录,并将它交换到有序序列