- 1、本文档共90页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章排序--精ppt课件
第10章 排序 排序的基本概念(P200) 排序算法的稳定性:假定在待排序的记录集中,存在多个具有相同键值的记录,若经过排序,这些记录的相对次序仍然保持不变,即在原序列中,ki=kj且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。 排序的基本概念 排序的分类 1. 内排序:在排序的整个过程中,待排序的所有记录全部被放置在内存中 2. 外排序:由于待排序的记录个数太多,不能同时放置在内存,而需要将一部分记录放置在内存,另一部分记录放置在外存上,整个排序过程需要在内外存之间多次交换数据才能得到排序的结果。 排序的基本概念 排序算法的性能指标 1. 时间开销: ⑴比较:关键码之间的比较; ⑵移动:记录从一个位置移动到另一个位置。 2. 空间开销: 辅助存储空间 3. 算法的稳定性 排序算法的存储结构 从操作角度看,排序是线性结构的一种操作,待排序记录可以用顺序存储结构或链接存储结构存储。 假定1:采用顺序存储结构,关键码为整型,且记录只有关键码一个数据项。int r[n+1]; //待排序记录存储在r[1]~r[n],r[0]留做他用 假定2:将待排序的记录序列排序为升序序列。 10.2 冒泡排序 交换排序的主要操作是交换,其主要思想是:在待排序列中选两个记录,将它们的关键码相比较,如果反序(即排列顺序与排序后的次序正好相反),则交换它们的存储位置。 冒泡排序的改进。(P202) 冒泡排序的时间性能分析 最好情况(正序): 比较次数:n-1 移动次数:0 时间复杂度为O(n)。 冒泡排序的时间性能分析 冒泡排序的性能分析 在平均情况下,冒泡排序的时间复杂度与最坏情况同数量级。 冒泡排序只需要一个记录的辅助空间,用来作为记录交换的暂存单元。 冒泡排序是一种稳定的排序方法。 10.3 选择排序 选择排序的主要操作是选择,其主要思想是:每趟排序在当前待排序序列中选出关键码最小的记录,添加到有序序列中。 简单选择排序 简单选择排序的主要思想是: 第i 趟在n-i+1(i=1,2,…,n-1)个记录中选取关键码最小的记录作为有序序列中的第i个记录。 需解决的关键问题? ⑴如何在待排序序列中选出关键码最小的记录? ⑵如何确定待排序序列中关键码最小的记录在有序序列中的位置? 问题1:如何在无序区中选出关键码最小的记录? 解决方法: 设置一个整型变量k,用于记录在一趟比较的过程中关键码最小的记录位置。 问题1:如何在无序区中选出关键码最小的记录? 解决方法: 设置一个整型变量k,用于记录在一趟比较的过程中关键码最小的记录位置。 问题2:如何确定最小记录的最终位置? 解决方法: 第i趟简单选择排序的待排序区间是r[i] ~ r[n],则r[i]是无序区第一个记录,所以,将index所记载的关键码最小的记录与r[i]交换。 10.4 插入排序 插入排序的基本思想是:将待排序表看做是左、右两部分,其中左边为有序区,右边为无序区,整个排序过程就是将右边无序区中的记录依次按关键字大小逐个插入到左边有序区中,以构成新的有序区,直到全部记录都排好序。 直接插入排序 基本思想:在插入第 i(i>1)个记录时,前面的 i-1个记录已经排好序。 直接插入排序 基本思想:在插入第 i(i>1)个记录时,前面的 i-1个记录已经排好序。 需解决的关键问题: (1)如何构造初始的有序序列? (2)如何查找待插入记录的插入位置? 直接插入排序过程示例 问题1:如何构造初始的有序序列 解决方法: 将第1个记录看成是初始有序表,然后从第2个记录起依次插入到这个有序表中,直到将第n个记录插入。 算法描述:for (i=2; i=n; i++) { 插入第i个记录,即第i趟直接插入排序;} 问题2:如何查找待插入记录的插入位置? 直接插入排序的时间性能分析 直接插入排序的时间性能分析 直接插入排序的性能分析 空间性能:需要一个记录的辅助空间。 直接插入排序算法是一种稳定的排序算法。 直接插入排序算法简单、容易实现,适用于待排序记录基本有序或待排序记录较小时。 当待排序的记录个数较多时,大量的比较和移动操作使直接插入排序算法的效率降低。 10.5 希尔排序 对直接插入排序进行改进 改进的着眼点: (1)若待排序记录按关键码基本有序时,直接插入排序的效率可以大大提高; (2)由于直接插入排序算法简单,则在待排序记录数量n较小时效率也很高。 基本思想:将整个待排序记录分割成若干个子序列,在子序列内分别进行直接插入排序,待整个序列中的记录基本有序时,对全体记录进行直接插入排序。 需解决的关键问题? (1)应如何分割待排序记录,才能保证整个序列逐步向基本有序发展? (2)子序列内如何进行直接插入排序?
您可能关注的文档
- 第9章数字接口例及分析.ppt
- 第9章似算法.ppt
- 第9章数形态学及其应用.ppt
- 第9章税制度.ppt
- 第9章数学形态原理第2讲.ppt
- 第9章水计算-用.ppt
- 第9章数组索引器与集合arrysindexersandcollections.ppt
- 第9章通道的高应用.ppt
- 第9章数器定时器.ppt
- 第9章随机信通过线性系统.ppt
- 2024年度党员干部民主生活会班子对照检查材料.docx
- 公司党委领导班子2024年度民主生活会对照检查材料4个带头方面.docx
- 市府办(政府办)领导班子2024年民主生活会会后综合情况报告.docx
- 在2025年市司法局信息宣传工作推进会上的讲话.docx
- 在2025年全省文化旅游高质量发展推进会上的讲话.docx
- 在2025年全区工业、住建大规模设备更新推进会上的讲话.docx
- 党支部2024年组织生活会民主评议党员情况总结报告_1.docx
- 2024年度组织生活会个人对照检查剖析材料.docx
- 镇党委书记2024年度民主生活会对照检查材料1.docx
- 党支部2024年组织生活会民主评议党员情况总结报告.docx
最近下载
- 日本日立变频器sj300系列调试参考手册.pdf
- 苏教版三年级下册含有小括号的混合运算教学设计.docx
- 施工安全管理员工培训.pptx VIP
- 禽流感课件(共23张PPT)《动物疫病防治》.pdf VIP
- 在2024年度组织生活会和民主评议党员会上的点评讲话+民主评议党员会议议程.doc VIP
- 天然苏打水标准.pdf VIP
- 理光MPC3004 3504 4504 6004SP维修手册.pdf VIP
- 部编版四年级下册语文5琥珀ppt课件设计 (3).ppt
- 第六节:隋唐统一多民族国家的发展.ppt VIP
- 兴文县2025年第一次公开考调公务员 (参照管理人员)(30人)笔试模拟试题及答案解析.docx
文档评论(0)