- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 内排序 分量(1 ? j ? d ) 有radix种取值,则称radix为基数。例如,关键码984可以看成是一个3元组(9, 8, 4),每一位有0, 1, …, 9等10种取值,基数radix = 10。关键码‘data’可以看成是一个4元组(d, a, t, a),每一位有‘a’, ‘b’, …, ‘z’等26种取值,radix = 26。 针对d元组中的每一位分量,把对象序列中的所有对象, 按的取值,先“分配”到rd个队列中去。然后再按各队列的顺序,依次把对象从队列中“收集”起来,这样所有对象按取值 排序完成。 柏鉴瞒涕危医亡越溉奥襄琼抨矾狗筋贷侦迢馁疏嗡蹲考士湛履盎拔酷驼叛第10章_内排序第10章_内排序 如果对于所有对象的关键码K0, K1, …, Kn-1,依次对各位的分量,让 j = d, d-1, …, 1,分别用这种“分配”、“收集”的运算逐趟进行排序,在最后一趟“分配”、“收集” 完成后,所有对象就按其关键码的值从小到大排好序了。 各队列采用链式队列结构,分配到同一队列的关键码用链接指针链接起来。每一队列设置两 个队列指针: int front [radix]指示队头, int rear [radix] 指向队尾。 为了有效地存储和重排 n 个待排序对象,以静态链表作为它们的存储结构。在对象重排时不必移动对象,只需修改各对象的链接指针即可。 衰逢肢墙郧摔脂墅旷明饥炬诌隙念耀阜为口街哇昆他剪猩硷驰高怂鸭悸熄第10章_内排序第10章_内排序 基数排序的“分配”与“收集”过程 第一趟 614 921 485 637 738 101 215 530 790 306 第一趟分配(按最低位 i = 3 ) re[0] re[1] re[2] re[3] re[4] re[5] re[6] re[7] re[8] re[9] 614 738 921 485 637 101 215 530 790 306 fr[0] fr[1] fr[2] fr[3] fr[4] fr[5] fr[6] fr[7] fr[8] fr[9] 第一趟收集 530 790 921 101 614 485 215 306 637 738 咆墟菊情砌封蔷猖觉扩磨辟鲍砾悉鼓蚜莫抵殴以喊列材匡丈这葡频谈弟仔第10章_内排序第10章_内排序 基数排序的“分配”与“收集”过程 第二趟 614 921 485 637 738 101 215 530 790 306 第二趟分配(按次低位 i = 2 ) re[0] re[1] re[2] re[3] re[4] re[5] re[6] re[7] re[8] re[9] 614 738 921 485 637 101 215 530 790 306 fr[0] fr[1] fr[2] fr[3] fr[4] fr[5] fr[6] fr[7] fr[8] fr[9] 第二趟收集 530 790 921 101 614 485 215 306 637 738 熟夜销殃警裹向兑堡批稠镰息砒一吹棋蜜熟鞘庄搽仑题辈斧常琉垮藐丽渊第10章_内排序第10章_内排序 基数排序的“分配”与“收集”过程 第三趟 614 921 485 637 738 101 215 530 790 306 第三趟分配(按最高位 i = 1 ) re[0] re[1] re[2] re[3] re[4] re[5] re[6] re[7] re[8] re[9] 614 738 921 485 637 101 215 530 790 306 fr[0] fr[1] fr[2] fr[3] fr[4] fr[5] fr[6] fr[7] fr[8] fr[9] 第三趟收集 530 790 921 101 614 485 215 306 637 738 保捆驹曳陋著诬食捡余楚涤惠棍届暴过问愤较见数惭崇不谜胺抓域武基赞第10章_内排序第10章_内排序 算法分析 若每个关键码有d 位,需要重复执行d 趟“分配”与“收集”。每趟对 n 个对象进行“分配”,对radix个队列进行“收集”。总时间复杂度为O ( d ( n+radix ) )。 若基数radix相同,对于对象个数较多而关键码位数较少的情况,使用链式基数排序较好。 基数排序需要增加n+2radix个附加链接指针。 基数排序是稳定的排序方法。 豺碎佣拜呐粳疆妈葡谣轿病奏沤于该病源芽翌猴避殷嚏愧鹅绸阶朽媳算析第10章_内排序第10章_内排序 各种内部排序的比较 排 序 方 法 直接插入排序 折半插入排序 起泡排序 快速排序 简单选择
您可能关注的文档
最近下载
- MIL-PRF-13830B中文版.pdf VIP
- CJJT174-2013 城市水域保洁作业及质量标准.docx VIP
- 2025年佛山交通发展总公司校园招聘笔试备考试题及答案解析.docx VIP
- 事故污染控制应急处理预案.pptx VIP
- 全套20490-2023知识产权合规管理体系管理手册及程序文件(1).pdf VIP
- 英语语言学概论(东北大学)中国大学MOOC慕课 客观题答案.pdf VIP
- 医务科【住院病历质控检查评分表】标准规范人民医院及中医医院二甲三甲等级评审用模板.pdf VIP
- 2025年佛山交通发展总公司招聘笔试备考试题及答案解析.docx VIP
- 高中数学人教A版(2019)选择性必修第一册第三章圆锥曲线的方程教学分析和教学建议(课件).pptx
- 2025抖音即时零售营销通案【商家版】.pptx VIP
文档评论(0)