HuJunfengHuJunfengHuJunfengHuJunfeng排序算法及算法分析2HuJunfengHuJunfengHuJunfengHuJunfeng问题的提出:•为什么要排序
有序表的优点
•按照什么原则排序
•如何进行排序
3HuJunfengHuJunfengHuJunfengHuJunfeng基本概念•排序(Sorting):简单地说,排序就是把一组记录按照某个(或某几个)字段的值以递增(由小到大)或递减(由大到小)的次序重新排列的过程
(如按年龄从小到大排序)学号姓名年龄性别2004001张佳18男2004002王鹏19男2004003刘宁17女2004004李娟18女2004005陈涛19男2004006李小燕18女4HuJunfengHuJunfengHuJunfengHuJunfeng•作为比较基础的一个(或多个)字段,称为排序码
排序码可以是数值、符号或符号串
•排序码不一定是关键码,关键码可以作为排序码
关键码是唯一的,但排序码不一定唯一
排序码不唯一时,排序的结果可能不唯一
•参与排序的对象,称为记录
一个记录可以包含多个字段
•如果记录集合中存在多个排序码相同的记录,经过排序后,排序码相同的记录的前后次序保持不变,则这种排序方法称为是稳定的,否则是不稳定的
排序码与关键码(primarykey)5HuJunfengHuJunfengHuJunfengHuJunfeng•排序方法可以分为五种∶插入排序、选择排序、交换排序、分配排序和归并排序
•在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序
本章侧重讨论内排序的方法,但有些方法(特别是归并排序的思想)也可以用于外排序
排序的类型6HuJunfengHuJunfengHuJunfengHuJunfeng排序算法的评价•评价排