网站大量收购独家精品文档,联系QQ:2885784924

10.1数据结构.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.1数据结构,数据结构与算法,数据结构c语言版,数据结构与算法分析,大话数据结构,数据结构严蔚敏,java数据结构和算法,java数据结构,数据结构视频教程,数据结构课程设计

《数据结构》 第十章(上) 第十章 内部排序 哨兵的作用 ??算法中引进的附加记录R[0]称监视哨或哨兵(Sentinel)。 ???  哨兵有两个作用:   ① 进人查找(插入位置)循环之前,它保存了R[i]的副本,使不致于因记录后移而丢失R[i]的内容;   ② 它的主要作用是:在查找循环中监视下标变量j是否越界。一旦越界(即j=0),因为R[0].key和自己比较,循环判定条件不成立使得查找循环结束,从而避免了在该循环内的每一次均要检测j是否越界(即省略了循环判定条件j=1)。 ? 注意:  ? ① 实际上,一切为简化边界条件而引入的附加结点(元素)均可称为哨兵。   ? 【例】单链表中的头结点实际上是一个哨兵   ② 引入哨兵后使得测试查找循环条件的时间大约减少了一半,所以对于记录数较大的文件节约的时间就相当可观。对于类似于排序这样使用频率非常高的算法,要尽可能地减少其运行时间。 注意: ??? 初始文件按关键字递增有序,简称“正序”。  初始文件按关键字递减有序,简称“反序”。 折半插入排序:用折半查找方法确定插入位置。 数据结构 tjm * 10.1 概述 10.2 插入排序 10.2.1 直接插入排序 10.2.2 其它插入排序 10.2.3 希尔排序 10.3 快速排序 10.4 选择排序 10.4.1 简单选择排序 10.4.3 堆排序 10.5 归并排序 10.6 基数排序 10.6.1 多关键字的排序 10.6.2 链式基数排序 10.7 各种内部排序方法的比较讨论 10.1 概述 排序:将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。 有序表与无序表:一组记录按关键字的递增或递减次序排列得到的结果被称之为有序表,相应地,把排序前的状态称为无序表。 内部排序和外部排序: 内部排序:待排序记录存放在内存 外部排序:排序过程中需对外存进行访问的排序 正序表与逆序表:若有序表是按关键字升序排列的,则称为升序表或正序表,否则称为降序表或逆序表。不失普遍性,一般只讨论正序表。 内部排序的方法: 插入排序:直接插入排序、折半插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:简单选择排序、堆排序 归并排序:2-路归并排序 其它排序: 多关键字排序、基数排序 排序基本操作: 比较两个关键字大小 将记录从一个位置移动到另一个位置 排序算法的稳定性: 考虑有多个数据元素具有相同关键字的情况。 稳定:具有相同关键字的数据元素的相对位置关系在排序前后保持不变。 不稳定:具有相同关键字的数据元素的相对位置关系在排序前后发生了改变。 例: 49 38 65 97 76 13 27 i=2 38 (38 49) 65 97 76 13 27 i=3 65 (38 49 65) 97 76 13 27 i=4 97 (38 49 65 97) 76 13 27 i=5 76 (38 49 65 76 97) 13 27 i=6 13 (13 38 49 65 76 97) 27 i=1 ( ) i=7 (13 38 49 65 76 97) 27 27 j j j j j j 97 76 65 49 38 27 (13 27 38 49 65 76 97) 排序结果: 10.2 插入排序 10.2.1 直接插入排序 排序过程:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序。 算法参见P265 当待排序列中记录按关键字非递减有序排列(正序)所需进行关键字间比较的次数达最小值 当待排序列中记录按关键字非递增有序排列(逆序)所需进行关键字间比较的次数达最大值 记录不需要移动。 直接插入排序算法评价 ? 1.算法的时间性能分析? ???  对于具有n个记录的文件,要进行n-1趟排序。 ??各种状态下的时间复杂度: O(n2)??? O(n2)? 0(n)? 时间复杂度??????? ?? ≈n2/4?? (n-1)(n+4)/2 0??? 总的记录移动次数? ?? (i-2)/2? i+2??????? 0? 第i趟记录移动次数 ???? ≈n2/4? (n+2)(n-1)/2 ? n-1??? 总关键字比较次数? (i-2)/2? ? i+1??? ??

文档评论(0)

wdhao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档