数据结构内部排序.ppt
《数据结构内部排序.ppt》由会员分享,可在线阅读,更多相关《数据结构内部排序.ppt(81页珍藏版)》请在第壹文秘上搜索。
1、数据结构 第10章 内部排序学习目的与要求:学习目的与要求:1.深刻理解排序的定义和各种排序方法的特点深刻理解排序的定义和各种排序方法的特点, 并能加以灵活应用并能加以灵活应用;2.熟练掌握各种排序方法的执行过程;熟练掌握各种排序方法的执行过程;3.熟练掌握各种排序方法的时间复杂度的分析方法,从熟练掌握各种排序方法的时间复杂度的分析方法,从“关键字间关键字间的比较次数和记录的移动次数的比较次数和记录的移动次数”分析排序算法的平均情况和最坏分析排序算法的平均情况和最坏情况的时间性能情况的时间性能;4.4.理解排序方法理解排序方法“稳定稳定”或或“不稳定不稳定”的含义。的含义。数据结构 第10章
2、内部排序概述概述插入排序插入排序交换排序交换排序选择排序选择排序基数排序基数排序归并排序归并排序各种排序方法的比较各种排序方法的比较数据结构 第10章 内部排序概述概述1 1基本概念基本概念排序排序:将数据元素:将数据元素( (或记录或记录) )的一个任意序列的一个任意序列, ,重新排列重新排列成一个按关键字有序的序列。成一个按关键字有序的序列。排序方法的稳定性排序方法的稳定性:对关键字相同的数据元素,排:对关键字相同的数据元素,排序前后它们的领先关系保持不变,则称该排序方法是序前后它们的领先关系保持不变,则称该排序方法是稳定的稳定的;反之,称该排序方法是;反之,称该排序方法是不稳定的不稳定的
3、。内部排序内部排序:待排序记录存放在计算机的内存中进行:待排序记录存放在计算机的内存中进行的排序。的排序。数据结构 第10章 内部排序外部排序外部排序:待排序记录的数量很大,以致内存一次:待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需对外存进行访问不能容纳全部记录,在排序过程中尚需对外存进行访问的排序。的排序。排序的时间开销排序的时间开销:排序的时间开销是衡量算法好坏的排序的时间开销是衡量算法好坏的最重要的标志。最重要的标志。排序的时间开销可用算法执行中的排序的时间开销可用算法执行中的数据数据比较次数比较次数与与数据移动次数数据移动次数来衡量。算法运行时间代价的来衡量。算
4、法运行时间代价的估算一般都估算一般都按平均情况按平均情况进行估算。对于那些进行估算。对于那些受记录关键受记录关键字序列初始排列及记录个数影响较大的字序列初始排列及记录个数影响较大的,需要需要按最好情按最好情况况和和最坏情况最坏情况进行估算进行估算。数据结构 第10章 内部排序2 2排序的分类排序的分类按排序过程依据的不同原则进行分类:按排序过程依据的不同原则进行分类:交换排序交换排序选择排序选择排序归并排序归并排序计数排序计数排序插入排序插入排序按工作量进行分类:按工作量进行分类:先进的排序方法,其时间复杂度为先进的排序方法,其时间复杂度为O(nlog2n)简单的排序方法简单的排序方法,其时间
5、复杂度为其时间复杂度为O(n2)基数排序基数排序基数排序,其时间复杂度为基数排序,其时间复杂度为O(dn)数据结构 第10章 内部排序3 3排序的基本操作和记录的存储方式排序的基本操作和记录的存储方式排序过程中需要的两种基本操作:排序过程中需要的两种基本操作:(1)比较关键字的大小;)比较关键字的大小;(2)将记录从一个位置移至另一个位置。)将记录从一个位置移至另一个位置。待排序记录序列可有下列三种存储方式:待排序记录序列可有下列三种存储方式:(1)记录存放在)记录存放在一组连续的存储单元一组连续的存储单元中;类似于线性表的顺序中;类似于线性表的顺序存储结构,记录次序由存储位置决定,实现排序需
6、移动记录。存储结构,记录次序由存储位置决定,实现排序需移动记录。(2)记录存放在)记录存放在静态链表静态链表中;记录次序由指针指示,实现排序中;记录次序由指针指示,实现排序不需移动记录,仅需修改指针。不需移动记录,仅需修改指针。链排序链排序(3)记录本身存放在一组连续的存储单元中,同时另设指示各)记录本身存放在一组连续的存储单元中,同时另设指示各个记录存储位置的个记录存储位置的地址向量地址向量,排序过程中不移动记录本身,而,排序过程中不移动记录本身,而移动地址向量中相应记录的移动地址向量中相应记录的地址地址。排序结束后再根据地址调整。排序结束后再根据地址调整记录的存储位置。记录的存储位置。地址
7、排序地址排序数据结构 第10章 内部排序4 4待排序记录的数据类型待排序记录的数据类型#define MAXSIZE 20typedef struct int key; InfoType otherinfo;RedType;typedef struct RedType rMAXSIZE+1; /0单元作为哨兵单元作为哨兵 int length;SqList;数据结构 第10章 内部排序概述概述插入排序插入排序交换排序交换排序选择排序选择排序基数排序基数排序归并排序归并排序各种排序方法的比较各种排序方法的比较数据结构 第10章 内部排序插入排序插入排序直接插入排序直接插入排序 插入排序的基本思想
8、是:每步将一个待排序的记插入排序的基本思想是:每步将一个待排序的记录,按其关键字大小,录,按其关键字大小,插入插入到前面已经到前面已经排好序排好序的一组的一组记录的记录的适当位置适当位置上,直到记录上,直到记录全部插入全部插入为止。为止。折半插入排序折半插入排序2-路插入排序路插入排序表插入排序表插入排序希尔排序希尔排序插入排序插入排序数据结构 第10章 内部排序1直接插入排序直接插入排序基本思想:基本思想: 当插入第当插入第i (i 1) 个记录时,前面的个记录时,前面的r1, r2, , ri-1已经排好序。这时,用已经排好序。这时,用ri的关的关键字与键字与ri-1, ri-2, 的关键
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 内部 排序