排序
排序(Sorting)
将数据元素(或记录)的任意序列,重新排列成一个按关键排序过程中的两种基本操作
(1)比较两个关键字值的大小。(2)根据比较结果,移动记录的位置
对关键字排序的三个原则
(1)关键字值为数值型的,则按键值大小为依据。
(2)关键字值为ASCII码,则按键值的内码编排顺序为依据。
(3)关键字值为汉字字符串类型,则大多以汉字拼音的字典次序为依据。
排序方法的稳定和不稳定
若对任意的数据元素序列,使用某个排序方法按关键字进行排序,对原先具有相同键值元素间的位置关系,若排序前与排序后保持一致,称此排序方法是稳定的;反之,则称为不稳定的。例:对数据键值为:5,3,8,3,6,6,排序。
若排序后的序列为:3,3,5,6,6,8
其相同键值的元素位置依旧是 3 在 3 前,6 在 6 前,与排序前保持一致,则这种排序法是稳定的。
若排序后的序列为:3,3,5,6,6,8
则这种排序法是不稳定的。
待排序记录的三种存储方式
(1)待排序记录存放在地址连续的一组存储单元上。(2)待排序记录存放在静态链表中。
(3)待排序记录存放在一组地址连续的存储单元,同时另设一个指示各个记录存储位置的地址向量,在排序过程中不移动记录本身,而移动地址向量中这些记录的“地址”,在排序结束后,再按照地址向量中的值调整记录的存储位置。
内排序
整个排序过程都在内存进行的排序称为内排序
外排序
待排序的数据元素量大,以致内存一次不能容纳全部记录,在排序过程中需要对外存进行访问的排序称为外排序。这里介绍内排序
下转 10--插入排序