- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构CH10
10.5 基数排序 基本数排序是与前面几种排序方法完全不同的一种排序方法,前者主要是通过关键字间的比较和移动记录这两种操作,而实现基数排序则不需进行关键字之间的比较。 它借助于多关键字排序的思想。 一、多关键字的排序 MSD法:最高位优先法 LSD法:最低位优先法 二、链式基数排序 分配 收集 ?2?3……?A?2?3……?A ?2?3……?A?2?3……?A 9.5 基数排序 多关键字排序 每一张牌有两个“关键字”:花色和面值,且“花色”的地位高于“面值”,在比较任意两张牌面的大小时,必须先比较“花色”,若“花色”相同,则再比较面值。 已知扑克牌中52张牌面的次序为: 两个关键字:花色( ???? ) 面值(23……A) 并且“花色”地位高于“面值” 根据实际问题的特点和要求选择合适的排序方法 没有哪一种排序方法是绝对好的。每一种排序方法都有其优缺点,适合于不同的环境。因此,在实际问题中,要根据具体情况作出选择。 首先,考虑排序对稳定性的要求 若有,则只能在稳定方法中选择;否则,可在所有方法中选择; 其次,考虑n的大小 若n较大,则可在改进方法中选择,否则在简单方法中选择; 然后,考虑其它因素 当n较大,关键字的值分布比较随机,并且对排序稳定性不作要求,宜选用快速排序法。 当n较大,内存空间又允许,并且要求排序稳定性时,宜选用归并排序法。 当n较大,关键字的值分布可能出现正序或逆序的情况,并且对稳定性不作要求时,宜采用堆排序或者归并排序。 当n较小,关键字的值基本有序或者分布比较随机,并且对稳定性要求时,宜采用插入排序。 当n较小,对排序稳定性不作要求时,宜采用选择排序方法,若关键字的值不接近逆序,也可采用直接插入排序。 已知两个有序表,若要将它们组合成一个新的有序表,最好的方法是归并排序。 本章小结 一般来说,在选择排序方法时,可有下列几种选择: 1) 若待排序的记录个数n值较小(例如n30),则可选用插入排序法,但若记录所含数据项较多,所占存储量大时,应选用选择排序法。反之,若待排序的记录个数n值较大时,应选用快速排序法。但若待排序记录关键字有“有序”倾向时,就慎用快速排序,而宁可选用堆排序或归并排序,而后两者的最大差别是所需辅助空间不等。 2) 快速排序和归并排序在n值较小时的性能不及直接插入排序,因此在实际应用时,可将它们和插入排序“混合使用。如在快速排序划分子区间的长度小于某值时,转而调用直接插入排序;或者对待排记录序列先逐段进行直接插入排序,然后再 利用归并操作进行两两归并直至整个序列有序为止。 3) 基数排序的时间复杂度为O (d×n),因此特别适合于待排记录数 n 值很大,而关键字位数 d 较小的情况。并且还可以调整基数(如将基数定为100或1000等)以减少基数排序的趟数d的值。 4) 一般情况下,对单关键字进行排序时,所用的排序方法是否稳定无关紧要。但当按最次位优先进行多关键字排序时(除第一趟外)必须选用稳定的排序方法。 数据结构 Data Structure 沈阳大学信息工程学院 齐晓轩 第十章 排序 插入排序 直接插入排序 希尔排序 交换排序 冒泡排序 快速排序 选择排序 简单选择排序 堆排序 归并排序 基数排序 前 言 什么是“排序”?简单说,排序是将无序的记录序列调整为有序记录序列的一种操作。例如,将下列记录序列{ R(52), R(49), R(80), R(36), R(14), R(58), R(61), R(23), R(97), R(75) }调整为序列 { R(14), R(23), R(36), R(49), R(52), R(58), R(61), R(75), R(80), R(97) } 一般情况下,对排序的定义为: 假设含有n个记录的序列为:{ R1 ,R2 ,…,Rn } (10-1) 它们的关键字相应为: {K1 ,K2 ,…,Kn } 对式(10-1)的记录序列进行排序就是要确定序号1,2,…,n的一种排列p1 ,p2 ,…,pn ,使其相应的关键字满足如下的非递减(或非递增)的关系: Kp1 ≤ Kp2 ≤ … ≤ Kpn (10-2) 也就是使式(10-1)的记录序列重新排列成一个按关键字有序的序列 { Rp1,Rp2 ,…,Rpn } (10-
您可能关注的文档
- 数字图像处理图像描述.doc
- 数字图像处理图像期中.ppt
- 数字图像处理与分析-第6章-图像压缩编码3-4节.ppt
- 数字图像处理图像校正.doc
- 数字图像处理在医学上的应用.docx
- 数字图像处理入门.ppt
- 数字图像处理PPT 第1章 绪论.ppt
- 数字图像处理_第4章图像增强.ppt
- 数字图像处理_几何变换.ppt
- 数字图像处理复习PPT.pptx
- CNAS-CL63-2017 司法鉴定-法庭科学机构能力认可准则在声像资料鉴定领域的应用说明.docx
- 12J7-3 河北《内装修-吊顶》.docx
- 12N2 河北省12系列建筑标准设计图集 燃气(油)供热锅炉房工程.docx
- 内蒙古 12S8 排水工程 DBJ03-22-2014.docx
- 山西省 12S10 12系列建筑标准设计 管道支架、吊架.docx
- 16J601-木门窗标准图集.docx
- 12J8 河北省12系列《 楼梯》.docx
- CNAS-GL37 2015 校准和测量能力(CMC)表示指南.docx
- CNAS-RL02-2016 能力验证规则.docx
- 津02SJ601 PVC塑料门窗标准.docx
文档评论(0)