- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 概述 插入排序 交换排序 选择排序 归并排序 基数排序 内容 基数排序 采用“分配”与“收集”的办法 用对多排序码进行排序的思想实现对单排序码进行排序的方法。 基数排序 (Radix Sort) 以扑克牌排序为例。每张扑克牌有两个“排序码”:花色和面值。其有序关系为: 花色:? ? ? ? ? ? ? 面值:2 3 4 5 6 7 8 9 10 J Q K A 把所有扑克牌排成以下次序: ? 2, …, ? A, ? 2, …, ? A, ? 2, …, ? A, ? 2, …, ? A 多排序码排序的例子 多排序码排序后形成的有序序列叫做词典有序序列。 一般情况下,假定有一个 n 个元素的序列 {V0, V1, …, Vn-1 },且每个元素Vi 中含有 d 个排序码 如果对于序列中任意两个元素Vi 和Vj (0≤i j ? n-1 ) 都满足: 则称序列对排序码 (K1, K2, …, Kd) 有序。其中,K1 称为最高位排序码,Kd 称为最低位排序码。 如果排序码是由多个数据项组成的数据项组,则依据它进行排序时就需要利用多排序码排序。 最高位优先MSD(Most Significant Digit first ) 最低位优先LSD(Least Significant Digit first) 最高位优先法通常是一个递归的过程: 先根据最高位排序码 K1排序, 得到若干元素组, 元素组中各元素都有相同排序码K1。 再分别对每组中元素根据排序码 K2 进行排序, 按 K2 值的不同, 再分成若干个更小的子组, 每个子组中的元素具有相同的 K1和 K2值。 依此重复, 直到对排序码Kd完成排序为止。 最后, 把所有子组中的元素依次连接起来,就得到一个有序的元素序列。 最低位优先法 首先依据最低位排序码Kd对所有元素进行一趟排序, 再依据次低位排序码Kd-1对上一趟排序的结果再排序, 依次重复,直到依据排序码K1最后一趟排序完成,就可以得到一个有序的序列。 使用这种排序方法对每一个排序码进行排序时,不需要再分组,而是整个元素组都参加排序。 实现单排序码排序 LSD和MSD方法也可应用于对一个排序码进行的排序。此时可将单排序码 Ki 看作是一个子排序码组: 链式基数排序 基数排序是典型的LSD排序方法, 利用“分配”和“收集”对单排序码进行排序。在这种方法中,把单排序码 Ki 看成是一个d元组: 其中的每一个分量 (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个队列中去。 按各队列的顺序,依次把队列中的元素“收集”起来,这样所有元素按取值 排序完成。 对于所有元素的排序码K0, K1, …, Kn-1, 依次对各位的分量, 让 j = d, d-1, …, 1, 分别用“分配”、“收集”的运算逐趟进行排序。 在最后一趟“分配”、“收集” 完成后, 所有元素就按其排序码的值从小到大排好序了。 各队列采用链式队列结构, 分配到同一队列的排序码用链接指针链接起来。每一队列设置两 个队列指针 int front [radix]指示队头 int rear [radix] 指向队尾 为了有效地存储和重排 n 个待排序元素,以静态链表作为它们的存储结构。 基数排序的“分配”与“收集” 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[
您可能关注的文档
- 秋浙教版七年级数学上册教学51 一元一次方程 (共14张.ppt
- 秋季物流管理师物流和看板管理培训教材.ppt
- 秋学期扬州武坚中学九四期中家长会.ppt
- 秋季高级人力资源管理师培训和开发.ppt
- 秋色简洁淡色PPT模板.ppt
- 秋部编人教版语文二年级上册第18课古诗二首(夜宿.ppt
- 秋新人教版九年级Unit3全单元.ppt
- 种子制备和菌种保藏.ppt
- 秋部编版一年级上册精品 我上学了.ppt
- 秋金属材料加工学第七讲超塑性.ppt
- 2025至2030内镜逆行胰胆管造影装置行业运营态势与投资前景调查研究报告.docx
- 2025至2030中国金属锂行业调研及市场前景预测评估报告.docx
- 2025至2030褥疮或压疮行业运营态势与投资前景调查研究报告.docx
- 2025至2030四(二甲基氨基)钛(TDMAT)行业运营态势与投资前景调查研究报告.docx
- 2025至2030中国文化行业市场深度调研及前景趋势与投资报告.docx
- 2025至2030中国计算机配件行业调研及市场前景预测评估报告.docx
- 2025至2030中国电力输配电设备行业深度研究及发展前景投资评估分析.docx
- 2025至2030电子束曝光系统(EBL)行业市场深度分析及发展规划及有效策略与实施路径评估报告.docx
- 2025至2030中国香槟行业市场深度调研及竞争格局与投资策略报告.docx
- 2025至2030中国恶心和呕吐治疗行业运营态势与投资前景调查研究报告.docx
文档评论(0)