- 1、本文档共104页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[数学]排序
第十章 内部排序 10.1 概述 10.2 插入排序 10.2.1 直接插入排序、折半插入排序、表插入排序 10.2.3 shell排序 10.3 交换排序(快速排序) 10.4 选择排序 10.4.1 简单选择排序 10.4.3 堆排序 10.5 归并排序 10.6 基数排序 10.7 各种排序方法的比较讨论 外部排序 10.1 内部排序概述 排序(Sorting): 将数据元素(或记录)的一个任意序列,重新排列成一个按关键字有序的序列。 排序方法的稳定性: 对关键字相同的数据元素,排序前后它们的领先关系保持不变,则称该排序方法是稳定的。反之,称该排序方法是不稳定的。 内部排序 待排序记录存放在计算机的内存中进行排序。 外部排序 待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需对外存进行访问的排序。 排序的基本操作和记录的存储方式 排序过程中需要的两种基本操作: (1)比较关键字的大小; (2)将记录从一个位置移至另一个位置。 待排序记录序列可有下列三种存储方式: (1)记录存放在一组连续的存储单元中;类似于线性表的顺序存储结构,记录次序由存储位置决定,实现排序需移动记录。---顺序排序 (2)记录存放在静态链表中;记录次序由指针指示,实现排序不需移动记录,仅需修改指针。--- 链排序 (3)记录本身存放在一组连续的存储单元中,同时另设指示各个记录存储位置的地址向量,排序过程中不移动记录本身,而移动地址向量中相应记录的地址。排序结束后再根据地址调整记录的存储位置。--- 地址排序 直接插入排序举例 例:序列为{49,38,65,97,76,13,27,49} {(49),38,65,97,76,13,27,49} (38) {(38,49),65,97,76,13,27,49} (65) {(38,49,65),97,76,13,27,49} (97) {(38,49,65,97),76,13,27,49} (76) {(38,49,65,76,97),13,27,49} (13) {(13,38,49,65,76,97),27,49} (27) {(13,27,38,49,65,76,97),49} (49) {(13,27,38,49,49,65,76,97)} 假设表结构为: #define SIZE 100 //静态链表容量 Typedef struct{ RedType rc; //记录项 int next; //指针项 }SLNode; //表结点类型 Typedef struct { SLNode r[SIZE]; //0号单元为表头结点 int length; //链表当前长度 }SLinkListType; //静态链表类型 排序过程 1、最大整数存入表头结点(下标为0); 2、将下标为1的结点与表头结点构成循环链表; 3、依次将下标为2到n的结点分量按记录关键字非递减有序插入到循环链表中。 四、 Shell排序算法(缩小增量) 基本思想: 先将整个待排序记录序列分割成若干子序列分别进行直接插入排序,待整个序列“基本有序”时,再对全体记录进行一次直接插入排序。 算法复杂度:O(n3/2) Shell排序举例(非稳定的) 10.3 交换(快速)排序 1. 冒泡排序(其时间复杂度O(n2)) 2. 快速排序----- 对冒泡排序的一种改进 基本思想: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分的关键字均比另一部分的关键字小,则可分别对这两部分记录继续分别进行排序,以达到整个序列有序。 快速排序举例 快速排序分析总结 快速排序的平均时间为T(n) = knlog(n) k为某个常数因子 经验表明,在同数量级的排序方法中,快速排序的常数因子k最小. 就平均时间而言,快速排序是最好的. 若初始序列按关键字基本有序,快速排序蜕化为起泡排序,其时间复杂度为O(n2)。 改进的方法,用“三者取中”的法则选取枢轴记录(pivotkey). 10.4 选择排序 10.4.1. 简单选择排序(其时间复杂度O(n2)) 基本思想: 每一趟在序列的后n-i+1(i=1,2,...,n-1)个记录中选取关键字最小的记录作为第i个记录。 10.4.3 堆排序(锦标赛排序) 堆的定义: n个元素的序列{k1,k2,...
您可能关注的文档
- [政史地]化工设备机械基础课后题答案-最新.ppt
- [政史地]区域地理——中国的自然资源.ppt
- [政史地]南亚.ppt
- [政史地]印度ppt.ppt
- [政史地]印度.ppt
- [政史地]名著导读《论语》授课版.ppt
- [政史地]国中古代经济史专题练习.ppt
- [政史地]国家财政课件上课用.ppt
- [政史地]圆桌会议上的博弈——冷战后国际政治格局的发展.ppt
- [政史地]地球运动专题太阳高度动画版.ppt
- internal for instructor-lesson plans partner course讲师课程计划合作伙伴.pdf
- 通过销售给客户来报废资产fifa abad国际足联世纪.pdf
- 内省了解javabean加强.pdf
- 测试无线终端开发认证组技术战略telus要求范围独立发布vstandalone terminal specification.pdf
- 计算书西区信息.pdf
- 文案详解the pelican kragi鹈鹕岩.pdf
- 综合平行证明.pdf
- 23ase study电子商务概要.pdf
- 文稿课件c o m qlik sense成果.pdf
- jimmy choo ss15男士系列鞋履mens collection男装.pdf
最近下载
- 材料电子及中子分析技术第8章 电子背散射衍射ppt.pptx VIP
- 人教版小学数学三年级下册全册教案(2024年春季修订).pdf
- 04 缤纷世界(2023初中英语中考时文阅读+完型填空+任务型阅读)(解析版).docx VIP
- ANSYS_Fluent_UDF_Manual(自定义UDF帮助文件).pdf VIP
- 你来比划我来猜(可选题组完美版).ppt
- 03 芸芸众生(2023初中英语中考时文阅读+完型填空+任务型阅读)(解析版).docx VIP
- 某EPC项目技术标投标文件.pdf
- 02 环保天地(2023初中英语中考时文阅读+完型填空+任务型阅读)(解析版).docx VIP
- DB33 1239-2021 建设工程配建5G移动通信基础设施技术标准.docx VIP
- 财政绩效评价方案.docx
文档评论(0)