- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 内部排序
数据结构
主讲教师:周时阳
《数据结构》是计算机科学与技术类各专业的一门基础课。
本章主要介绍数据结构课程研究的问题背景、研究内容和范围。讨论了数据结构和算法的基本概念以及算法的评价。
关于线性结构、树型结构和图型结构等3类基本结构,将在后续各章陆续展开讨论它们的逻辑结构、逻辑结构上定义的运算、物理结构、逻辑结构与物理结构对应关系、运算的实现算法与效率分析。
内容摘要
重点讲解
10.1 概论
10.2 插入排序
10.3 快速排序
10.4 选择排序
10.5 归并排序
10.6 基数排序
10.7 内部排序方法的比较
小结
目录
10.1 概论
“排序”是基于数据逻辑结构(D,R)定义的一种十分常见的运算。数学上,“排序” 是指依据D中的每个数据元素之关键字,按照递增(或递减)顺序将数据元素排列的过程。即:
假设 D={a1, a2, …, ai, …, an}初始序列为
(a1, a2, …, ai, …, an)
其对应的关键字序列为
(k1, k2, …, ki, …, kn)
关键字的递增序列为
(kp1, kp2, …, kpi, …, kpn)
则 (a1, a2, …, ai, …, an)排序结果为
(ap1, ap2, …, api, …, apn)
如果排序算法,对于次关键字排序后,确保相同的次关键字与排序前的相对前后次序不变,则称该算法是稳定的,否则称该算法是不稳定的。即:
假设D的初始序列为
(…, ai , … , aj , …)
其对应的关键字序列为
(…, ki , …, kj , …)
且ki=kj ,关键字的递增序列为
(…, ki , kj , …)
则 D的排序结果为
(…, ai , aj , … )
标识多个(1)数据元素的分量,称为次关键字。
“排序”运算的一般描述形式为:sort(T,fkey,up_dn),即根据给定关键字分量,按照up_dn指定的不减序或不增序,对T进行排序。
10.2.1 直接插入排序
10.2 插入排序
基本原理:
在递增(递减)有序表L上,插入一个元素x,使其仍然保持有序。
≤
…
基本步骤:
⑴ 确定插入位置;
⑵ 移动元素;
⑶ 填入新元素。
基本步骤:
⑴ 边确定插入位置,边移动元素;
⑵ 填入新元素。
x
“哨兵技术”
目录
算法思想:
从表L=(a1, a2, a3, … , ai, … , an )的第2个元素 a2 开始,直到最后一个元素an 为止, 逐个插入本元素之左边的有序子表, 使其仍然保持有序。
( )
49
38
65
97
76
13
27
49
38
49
38
( )
65
97
76
13
27
49
65
49
38
65
( )
65
97
76
13
27
49
97
49
38
65
97
( )
76
13
27
49
97
49
38
65
76
97
76
49
( )
13
27
49
49
38
65
13
97
76
97
76
65
38
13
( )
27
49
49
27
76
65
97
38
13
97
76
65
49
38
27
( )
49
49
97
13
97
76
65
49
38
27
76
65
49
最好情况:正序
最差情况:反序
算法时间复杂度T(n)=O(n2)
10.2.2 其它插入排序
⒈ 折半插入排序
算法思想:
“定位”除了上述顺序定位法外,还可以利用有序子表特点,采用折半定位法。
当定位结束(即LH)时,aL ~ ai-1向后移动。
ak≤x
x< ak
算法时间复杂度T(n)=O(n2)
⒉ 2路插入排序 (将关键字排序在辅助空间中)
算法思想:
⑴ 取出表 L=(a1, a2, a3, … , ai, … , an ) 的第1个元素 a1 存入辅助空间D[1];
⑵ 取出表L的下一个元素 ai ,如果ai<D[1],则插入到D[1]之左边的有序子表,否则插入到D[1]之右边的有序子表;
⑶ 重复⑵,直到表L的最后一个元素an插入后为止。
算法分析:
您可能关注的文档
最近下载
- 我爱这土地公开课一等奖市赛课一等奖课件.pptx VIP
- 2025社区工作者招聘考试综合基础知识试题(附答案).docx VIP
- 基于Javaweb的图书管理系统的设计与实现.docx VIP
- 医院危重孕产妇新生儿急救应急演练脚本.docx VIP
- 小学科学新教科版二年级上册1.6.“小房子”展示会教案(2025秋版).doc VIP
- 网络安全等级保护-重大风险隐患项描述实践指南(【2025】测评报告新增).docx VIP
- 社区工作者综合能力考试基础知识试题及答案.docx VIP
- 2025年秋新人教版数学三年级上册整册教案.pdf
- 抗菌药物临床应用分级管理目录(2023年版).doc VIP
- 急性左心衰护理课件ppt.pptx
文档评论(0)