概述
基本概念:
定义:将文件中的数据记录按关键字值的递增或递减的顺序排列起来。
{R1, R2,..., Rn}→ {Ri1, Ri2,..., Rin}
其中关键字{k1, k2,..., kn}→有序序列{ki1, ki2,..., kin}
排序方法的稳定性: 对于ki=kj的记录Ri=Rj( Ri在Rj之前),
排序后: Ri仍在Rj之前,则排序方法是稳定的; Ri在Rj之后, 则排序方法是不稳定的;
方法分类:
内部排序:在内存中进行,适于小文件
外部排序:使用内存和外存,适于大文件,内存不够用
内部排序:文件可有三种存储结构
(1)一维数组:对记录的物理位置重排
(2)链表:修改指针
(3)索引表:对索引进行物理重排,记录位置不动(由于不方便移动等原因)
本讲仅考虑:记录数组R[n],关键字key为整数
标准: 执行时间(最重要的标志),所需空间,算法复杂度 排序的时间代价主要指:算法中关键字的比较次数和记录的移动次数