




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章排序 7 1概述7 2插入排序7 3交换排序7 4选择排序7 5归并排序7 6外部排序7 7各种内排序方法的比较和选择 7 1概述 7 1 1排序的基本概念所谓排序就是整理文件中记录 使之按关键字递增 或递减 次序排列起来其确切的定义如下 假设含n个记录的序列为 R1 R2 Rn 其相应的关键字序列为 K1 K2 Kn 需确定1 2 n的一种排列Ri1 Ri2 Rin 使其相应的关键字满足Ki1 Ki2 Kin 或Ki1 Ki2 Kin 的关系 7 1概述 排序的对象 排序的对象是文件 它由一组记录组成 每条记录则由一个或若干个数据项 或域 组成排序运算的依据 所谓关键字项就是可用来标识一个记录的一个或多个组合的数据项 该数据项的值称为关键字 Key 需注意的是在不易产生混淆时 可将关键字项简称为关键字 用来作排序运算依据的关键字 可以是数字类型 也可以是字符类型 关键字的选取应根据问题的要求而定 7 1概述 7 1 2排序的稳定性当待排序记录的关键字均不相同时 排序结果是惟一的 否则排序结果不惟一 在待排序的文件中 若存在多个关键字相同的记录 经过排序后这些具有相同关键字的记录之间的相对次序保持不变 该排序方法是稳定的 若具有相同关键字的记录之间的相对次序发生变化 则称这种排序方法是不稳定的 排序算法的稳定性是针对所有输入实例而言的 即在所有可能的输入实例中 只要有一个实例使得算法不满足稳定性要求 则该排序算法就是不稳定的 7 1概述 7 1 3排序的分类按在排序过程中是否涉及数据的内 外存交换来分类 排序大致分为两类 内部排序和外部排序 对于外排序 可以进一步的分为两种方法 合并排序法直接合并排序法对于内排序 按策略进行划分 可以分为 插入排序选择排序交换排序归并排序分配排序 7 1概述 7 1 4排序算法分析分析排序算法时 传统方法是衡量关键字之间进行比较的次数排序算法分析应该考虑比较的次数和数据移动的次数并不总是需要或是可能确定比较的准确次数 因此只能计算一个近似值可以根据实际条件选择使用哪一种算法 7 2插入排序 7 2 1直接插入排序1 基本思想2 插入算法3 Java程序4 直接插入排序法的算法分析 1 算法的时间性能分析 2 算法的空间复杂度分析 3 直接插入排序的稳定性 7 2插入排序 7 2 2希尔排序1 基本思想2 具体算法3 希尔排序的算法分析 1 增量序列的选择 2 Shell排序的时间性能优于直接插入排序 7 2插入排序 希尔排序的时间性能优于直接插入排序的原因 当文件初态基本有序时直接插入排序所需的比较和移动次数均较少 当n值较小时 n和n2的差别也较小 即直接插入排序的最好时间复杂度O n 和最坏时间复杂度0 n2 差别不大 在希尔排序开始时增量较大 分组较多 每组的记录数目少 故各组内直接插入较快 后来增量di逐渐缩小 分组数逐渐减少 而各组的记录数目逐渐增多 但由于已经按di 1作为距离排过序 使文件较接近于有序状态 所以新的一趟排序过程也较快 因此 希尔排序在效率上较直接插人排序有较大的改进 3 稳定性希尔排序是一种不稳定排序方法 7 3交换排序 7 3 1冒泡排序1 基本思想2 具体算法3 Java程序4 冒泡排序的算法分析 1 算法的最好时间复杂度 2 算法的最坏时间复杂度 3 算法的平均时间复杂度为O n2 4 算法稳定性 7 3交换排序 5 冒泡排序的算法改进 1 记住最后一次交换发生位置lastExchange的冒泡排序 2 改变扫描方向的冒泡排序 冒泡排序的不对称性 造成不对称性的原因 改进不对称性的方法 7 3交换排序 7 3 2快速排序1 基本思想2 具体算法3 算法分析 1 最坏时间复杂度 2 最好时间复杂度 3 基准关键字的选取 三者取中 的规则 取位于low和high之间的随机数k low k high 用R k 作为基准 4 平均时间复杂度 5 空间复杂度 6 稳定性 7 4选择排序 7 4 1直接选择排序1 基本思想2 具体算法3 直接选择排序的算法分析 1 关键字比较次数 2 记录的移动次数 3 直接选择排序是一个就地排序 4 稳定性分析 7 4选择排序 7 4 2堆排序1 基本思想2 具体算法3 算法分析 7 5归并排序 1 基本思想2 实现方法3 算法分析 1 稳定性 2 存储结构要求 3 时间复杂度 4 空间复杂度 7 6外部排序 7 6 1辅助存储器的存取1 磁盘信息的存取 磁盘是一种直接存取的存储设备 它是以存取时间变化不大为特征的2 磁带信息的存取 磁带是薄薄涂上一层磁性材料的一条窄带3 缓冲技术 操作系统使用了缓冲技术 可解决以下问题 1 解决信息的到达率和离去率不一致的矛盾 2 缓存起中转站的作用3 使得一次输入的信息能多次使用 7 6外部排序 7 6 2外部排序的方法如果你的操作系统支持虚拟存储 最简单的外部排序方法是把整个文件读入虚拟存储器中 然后运行一个内部排序方法调整内部排序算法使之应用于外部排序 这种思路的更普遍的问题是这样做不可能比设计一个新的尽量减少磁盘存取的算法更有效 进行外部排序的一个更好的方法源于归并排序 7 7各种内排序方法的比较和选择 判断内排序方法的性能的标准 1 评价排序算法好坏的标准 评价排序算法好坏的标准主要有两条 执行时间和所需的辅助空间 算法本身的复杂程度 2 排序算法的空间复杂度若排序算法所需的辅助空间并不依赖于问题的规模n 即辅助空间是O
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年茶艺师(泡茶、品茶、茶艺)等专业知识试题库与答案
- 2024年广告设计师(制作及创意)等技能知识考试题库与答案
- 现代密封技术试题及答案
- 摄影位置基础知识培训课件
- 2025年设立中外合资经营企业合同餐饮类
- 2025国内留学中介服务合同
- 搭一搭二课件
- 公司财务知识培训课件
- 公司财务培训法律知识课件
- 晋中教师招聘面试题目研究:行业动态与趋势分析
- 四川省宜宾市2025年中考物理试题(含答案)
- 2026届高考语文总复习(第1轮)第一部分 语法、逻辑、表达技巧第三章 第1节 表达方式
- 2025至2030中国慢性病管理行业发展趋势分析与未来投资战略咨询研究报告
- 中、短波广播天线工职业技能鉴定经典试题含答案
- 《低空数字航空摄影测量外业规范》
- 医疗垃圾培训课件
- 小区真石漆修补方案(3篇)
- 急性食物中毒患者院前急救
- 中医药健康服务规范课件
- DB4401-T 215-2023 井盖设施技术规范
- 医学实验室管理规范
评论
0/150
提交评论