- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十章a插入排序,纪念碑谷第十章,恶灵附身第十章贞子,洛克王国冒险第十章,道德经第十章,刀塔传奇第十章,纪念碑谷第十章攻略,恶灵附身第十章boss,火影忍者ol第十章副本,骆驼祥子第十章读后感
18 第十章 内部排序 * * £10.1 概述 £10.2 插入排序 £10.2.1 直接插入排序 £10.2.2 其他插入排序 £10.2.3 希尔排序 £10.3 快速排序 £10.4 选择排序 £10.4.1 简单选择排序 £10.4.2 树形选择排序 £10.4.3 堆排序 £10.5 归并排序 £10.6 基数排序 £10.6.1 多关键字的排序 £10.6.2 链式基数排序 £10.7 各种内部排序方法的比较讨论 (1)相关术语 假设含有n个记录的序列为 {R1, R2, … , Rn} (10 —1) 其相应的关键字序列为 {K1, K2, … , Kn} 需确定1, 2, … , n的一种排列p1, p2, … , pn,使其相应的关键字满足如下的非递 减(或非递增)关系 (10 — 2) 即使式(10—1)的序列成为一个按关键字有序的序列 (10 — 3) 这样一种操作称为排序。 £10.1 概述 例如:将下列关键字序列 52, 49, 80, 36, 14, 58, 61, 23, 97, 75 调整为 14, 23, 36, 49, 52, 58, 61 ,75, 80, 97 假设Ki = Kj(1≤i≤n, 1≤j≤n, i≠j)(此时Ki和Kj是记录的次关键字),且在排 序前的序列中Ri领先于Rj(即i j)。 若在排序后的序列中Ri仍领先于Rj,则称所用的排序方法是稳定的; 若可能使排序后的序列中Rj领先于Ri,则称所用的排序方法是不稳定的。 £10.1 概述 如 2, 2*,1,排序后若为1, 2*, 2 则该排序方法是不稳定. 内部排序:指的是待排序记录存放在计算机随机存储器中进行的排序过程。 外部排序:指的是待排序记录的数量很大,以致内存一次不能容纳全部记录, 在排序过程中尚需对外存进行访问的排序过程。 £10.1 概述 (2)内部排序的分类 ①按排序过程中依据的不同原则: 1.插入排序; 将无序子序列中的一个或几个记录“插入”到有序序列中,从而增加记录的有序子序列的长度; 2.交换排序; 通过“交换”无序序列中的记录从而得到其中关键字最小或最大的记录,并将它加入到有序子序列中,以此方法增加记录的有序子序列的长度; 3.选择排序; 从记录的无序子序列中“选择”关键字最小或最大的记录,并将它加入到有序子序列中,以此方法增加记录的有序子序列的长度; 4.归并排序; 通过“归并”两个或两个以上的记录有序子序列,逐步增加记录有序序列的长度; (2)内部排序的分类 ②按排序过程中所需的工作量: 1.简单的排序方法, 其时间复杂度为O(n2); 2.先进的排序方法,其时间复杂度为O(nlogn); 3.基数排序,其时间复杂度为O(d*n)。 (3)两种基本操作 ①比较两个关键字的大小; ②将记录从一个位置移动至另一个位置。 前一种基本操作对大多数的排序方法是必须的,而后一个操作可以通过改变记录的存储方式来予以避免。 (4)存储方式 待排序的记录序列可有下列3中存储方式: ①待排序的一组记录存放在地址连续的一组存储单元上。 ②一组待排序记录存放在静态链表中。在此方式下实现的排序又称 (链)表排序。 ③待排序记录本身存储在一组地址连续的存储单元内,同时另设一 个指示各个记录存储位置的地址向量。在此方式下实现的排序又 称地址排序。 排序的方法有很多,但简单地判断那一种算法最好,以便能够普遍选用则是困难的。 评价排序算法好坏的标准主要有两条:算法执行所需要的时间和所需要的附加空间。 另外,算法本身的复杂程度也是需要考虑的一个因素。 排序算法所需要的附加空间一般都不大,矛盾并不突出。而排序是一种经常执行的一 种运算,往往属于系统的核心部分,因此排序的时间开销是算法好坏的最重要的标志。 (5)数据类型 待排记录的数据类型设为: #define MAXSIZE 20 //一个用作示例的小顺序表的最大长度 typedef int KeyType; //定义关键字类型为整数类型 typedef struct { KeyType key; //关键字项 InfoType otherinfo; //其他数据项 } RedType; //记录类型 typedef struct { RedType
您可能关注的文档
最近下载
- 魂兮归来_王德威.pdf VIP
- 排球正面下手发球-课件.ppt VIP
- 空调维保质量保障体系及措施方案.pdf VIP
- 2025-2026北京版三年级上册数学教学计划(三套).docx VIP
- 液相色谱_质谱(LC_MS)联用的原理和应用.ppt
- 基层站队HSE标准化建设.pptx VIP
- 6.3 用总量和分量之间的关系解决问题(2)(课件)2025-2026学年度北京版数学三年级上册.pptx VIP
- 全国统一电力市场发展规划蓝皮书2025.pdf VIP
- 6.2 用估算解决实际问题(课件)2025-2026学年度北京版数学三年级上册.pptx VIP
- 6.4 用不同的方法解决问题(1)(课件)2025-2026学年度北京版数学三年级上册.pptx VIP
文档评论(0)