什么是排序?
将一组杂乱无章的数据按一定的规律顺次排列起来。排序的目的是便于查找。
排序算法的好坏如何衡量?
时间效率: 排序速度(即排序所花费的全部比较次数)
空间效率: 占内存辅助空间的大小
稳定性: 若两个记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则称此排序算法是稳定的。
内部排序和外部排序
内部排序: 若待排序记录都在内存中,称为内部排序。
内部排序基本操作有两种:
- 比较两个关键字的大小;(必不可少的操作)
- 存储位置的移动。
外部排序: 若待排序记录一部分在内存,一部分在外存,则称为外部排序。
待排序记录在内存中怎样存储和处理?
顺序排序 —— 数据间的逻辑顺序关系通过其物理存储位置的相邻来体现,排序时直接移动记录,适合数据较少的情况。
链表排序 —— 数据间的逻辑顺序关系通过结点中的指针体现,排序时只修改指针,不移动数据,适合数据较多的情况。
地址排序 —— 数据存储在一段连续地址的空间,构造一个辅助表保持各数据的存放地址(指针),排序时先修改辅助表中的地址,最后再移动记录,适合数据较多的情况。