欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数据结构(C语言版CHAP).ppt

    • 资源ID:6296796       资源大小:316.82KB        全文页数:25页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构(C语言版CHAP).ppt

    第十章 排序,第 十 章 排 序,第十章 排 序 10.1 概述 10.2 插入排序 10.3 交换排序 10.4 选择排序 10.5 归并排序,10.1 概 述,学习要点理解排序的定义和各种排序方法的特点;了解各种方法的排序过程及其依据的原则;理解“稳定”或“不稳定”的含义;,10.1 概 述,排序也是数据处理中经常使用的一种操作。例 高考考生信息管理系统提供了将考生按总分排序、按单科排序的功能;1 排序定义 设R1 R2 R3 Rn 是n个记录,k1,k2,k3 kn为它们的关键字,排序就是将记录按关键字递增(或递减)的次序排列起来。2 分类按记录的存放位置分类有 内排序:待排记录放在内存 外排序:待排记录放在外存按排序原则分类(内排序)插入排序 交换排序 选择排序 归并排序 基数排序,10.1 概 述,稳性排序:在待排记录序列中,任何两个关键字相同的记录,用某种排序方法排序后相对位置不变,则称这种排序方法是稳定的,否则称为不稳定的。例 设 49,38,65,97,76,13,27,49 是待排序列 排序后:13,27,38,49,49,65,76,97 稳定 排序后:13,27,38,49,49,65,76,97不稳定稳性排序的应用:例 股票交易系统 考虑一种股票交易(清华紫光))1)顾客输入:股东帐号、股票代码、申购价格、数量,股票交易系统将用户申购请求插入申购队列队尾;2)股票交易系统按如下原则交易:A)申购价高者先成交 B)申购价相同者按申购时间先后顺序成交,10.1 概 述,如何实现股票交易系统?申购队列:用线性表表示交易前:将申购队列按申购价排序,显然为满足原则交易B),要求排序方法是稳定的申购队列(09,10),(06,10.5),(033,9.8),(051,10)排序后:(06,10.5),(09,10),(051,10),(033,9.8)4 存贮方式待排序的记录序列通常有下列三种存贮方法:1)顺序表2)静态链表:在排序过程,只需修改指针,不需要移动记录;3)待排记录本身有放在连续单元中,同时另建一索引表用于存放各记录存贮位置;排序时不移过记录本身,而移动索引表中的记录“地址”,在排序结束后再按地址调整记录的存贮位置,10.1 概 述,5 约定在本章中1)为简洁起见,对待排记录只写出其关键字序列 如对待排记录((09,10),(06,10.5),(033,9.8),(051,10)只写出其关键字序列(10,10.5,9.8,10)2)将按关键字递增的顺序排序,10.1 概 述,3)待排序记录用顺序表存储顺序表类型说明#define MAXSIZE 20/一个用作示例的小顺序表的最大长度typedef int KeyType;/定义关键字类型为整数类型typedef structKeyType key;/关键字项InfoType otherinfo;/其它数据项RedType;/记录类型typedef structRedType rMAXSIZE+1;/r0闲置或用作哨兵单元Int length;/顺序表长度SqList;/顺序表类型,10.1 概 述,6 本课程介绍如下几种排序方法 插入排序 交换排序 选择排序 归并排序,10.2 插入排序,基本思想 依次将待排记录插入到有序子表中,并使插入子表后仍保持有序,直到全部记录插入完毕;初始时,有序子表中只有一个元素。直接插入排序插入排序的关键:如何查找插入位置。直接插入排序(也称为顺序插入排序)是用顺序查找法定位插入位置。若采用二分查找法定位插入位置则得到另一种插入算法,二分插入排序 例:待排记录 49 38 65 97 76 13 27 49(49)38 65 97 76 13 27 49(38 49)65 97 76 13 27 49(38 49 65)97 76 13 27 49(38 49 65 97)76 13 27 49(38 49 65 76 97)13 27 49(13 38 49 65 76 97)27 49(13 27 38 49 65 76 97)49(13 27 38 49 49 65 76 97),一趟直接插入排序,10.2 插入排序,void InsertSort(SqList/插入到正确位置/InsertSort,初始时,有序子表中只有一个元素,10.2 插入排序,L.r0.key L.r4.key,L.r4记录后移,看一下外层For循环 i=5 时算法的执行的情况,L.r5复制为哨兵,L.r0.key L.r3.key找到插入位置,L.r5为待插入元素,插入!,10.2 插入排序,性能分析:基本操作 比较元素:比较、移动元素次数均取决于插入位置 移动元素处理第i个记录时 待排序列递增(正向)有序时,比较元素次数最少:1次 待排序列递减(逆向)有序时,比较元素次数最多:i 次 一般待排序列,平均比较元素次数:(i+1)/2 对n个记录待排序列,直接插入排序 待排序列正向有序时,比较元素次数最少:n-1次 待排序列逆向有序时,比较元素次数最多:(n+2)(n-1)/2次 一般待排序列,平均比较元素次数大约为:n2/4 类似可分析移动元素次数,10.2 插入排序,时间复杂度 待排序列正向有序时:0(n)待排序列逆向有序时:0(n2)一般待排序列:0(n2)特点:1)算法简单 2)时间复杂度为O(n2)3)初始序列基本(正向)有序时,时间复杂度为O(n)4)稳定排序 该方法适用于记录基本(正向)有序或n较少的情况,10.2 插入排序,四、希尔排序 直接插入排序法简单,适用于记录较少,或待排记录基本(正向)有序的情况。基于直接插入排序上是述特点,希尔提出了另一种插入排序算法。1 基本思想:1)将待排序记分为若干组,在各组内分别进行直接插入排序;2)作若干次使待排记录基本有序;3)对全部记录进行一次顺序插入排序;分组方法:选定一增量d,将间隔为d的记录作为一组例 待排记录 49 38 65 97 76 13 27 49 55 04 49 38 65 97 76 13 27 49 55 04 13 27 49 55 04 49 38 65 97 76 13 27 49 55 04 49 38 65 97 76 13 04 49 38 27 49 55 65 97 76 04 13 27 38 49 49 55 65 76 97,一趟希尔排序结果,两趟希尔排序结果,d=5,d=3,10.2 插入排序,特点 1)时间复杂度,取决于增量序列的选择,选择的好,效率优于直接插入排序,其时间复杂度为0(nlog2n)2)不稳定排序方法 3)适用于n 较大情况,10.3 交换排序,一、基本思想:将待排记录中两两记录关键字进行比较,若逆序而交换位置。例:49 38 65 97 76 13 27 49 若按关键字递增的顺序排序 则49 38 为逆序 不同的比较顺序就得到不同的交换排序方法二 起泡排序:顺序比较相邻的两记录的关键字,若逆序而交换位置三 快速排序1 基本思想1)选定一记录R,将所有其他记录关键字k与该记录关键字k比较,若 kk 则将记录换至R之后;2)继续对R前后两部分记录进行快速排序,直至排序范围为1;,10.3 交换排序,2 基本步骤 为简洁起见,对待排记录仍只写出其关键字序列1(一趟快速排序)设被指定的关键字为待排序列的第一个关键字k,i指向待排序列的的第一个关键字;j指向最后一个关键字;若i j 循环:1)从后向前将关键字与k比较,直至遇到小于k的关键字 k,k 前移;2)从前向后将关键字与k比较,直至遇到大于k的关键字k,k后移;(一趟快速排序后,“小”记录被移至k 前,“大”的记录被移至k 后2 继续对k前后两部分关键字进行快速排序,直至排序范围为1;,10.3 交换排序,被指定的关键字,从后向前,将关键字与49比较,直至遇到小于49的关键字,前移,从后向前,将关键字与49比较,直至遇到小于49的关键字,前移,从前向后,将关键字与49比较,直至遇到大于49的关键字,后移,从前向后,将关键字与49比较,直至遇到大于49的关键字,后移,从后向前,将关键字与49比较,直至遇到i=j,将49放至i处,49,一趟快速排序结束,10.3 交换排序,27 38 13 49 76 97 65 49 13 27 38 49 49 65 76 97 13 27 38 49 49 65 76 97 13 27 38 49 49 65 76 97,两趟快速排序结束,三趟快速排序结束,快速排序结束,10.3 交换排序,例 待排记录 49 38 65 97 76 13 27 4927 38 13 49 76 97 65 49 27 38 13 49 76 97 65 49 13 27 38 49 49 65 76 97 13 27 38 49 49 65 76 97 13 27 38 49 49 65 76 97,两趟快速排序结果,三趟快速排序结果,一趟快速排序结果,快速排序结束,特点:1)时间复杂度为0(nlog2n)2)不稳定,10.4 选择排序,10.4 选择排序,2 算法void SelectSort(SqList/与第个i记录交换/for/SelectSort3 特点:1)算法简单 2)时间复杂度为O(n2)3)稳定排序,10.5 归并排序,第十章 结束,

    注意事项

    本文(数据结构(C语言版CHAP).ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开