




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2016数据结构Data structure讲授:丁慧分配排序常州信息职业技术学院11分配排序扑克牌是多关键字的,有花色和点数两个关键字,花色取值只有4种,而点数则有13种;三、基数排序基数排序是箱排序的改进和推广。1多关键字排序方法(1)单关键字和多关键字扑克牌有两个关键字:点数和花色。多关键字中的每个关键字的取值范围一般不同,单关键字中的每位一般取值范围相同。三位十进制整数是单关键字的,每位数码的取值范围都是0到9。12分配排序(2)基数设单关键字的每个分量kj的取值范围均是:C0kjCr-1(0jd),可能的取值个数r称为基数。基数的选择和关键字的分解与关键字的类型有关:若关键字是十进制
2、整数,则按个、十等位进行分解,基数r=10,C0=0,C9=9,d为最长整数的位数;若关键字是小写的英文字符串,则r=26,C0= a,C25= z,d为字符串的最大长度。三、基数排序1多关键字排序方法13分配排序(3)多关键字排序方法高位优先法:先按最高位关键字K0对记录进行排序,将文件分成若干堆,每堆中的记录都具有相同的K0值,再对每堆按关键字K1对记录进行排序,如此重复,直到对每堆按关键字Kd-1对记录进行排序,最后将各堆按次序叠在一起成为一个有序文件。低位优先法:先按最低位关键字Kd-1对记录进行排序,再按关键字Kd-2对记录进行排序,如此重复,最后按关键字K1对记录进行排序,得到一个
3、有序文件。三、基数排序1多关键字排序方法 例如:扑克牌先按花色关键字进行排序,花色的顺序为梅花、方块、红桃、黑桃,将扑克牌按花色分成4堆,再对每一堆按面值关键字进行排序,最后将各堆依次叠放在一起得到有序的一副扑克牌,此方法就是高位优先法。另外,扑克牌先按面值关键字进行排序,再按花色关键字进行排序,得到有序的一副扑克牌,此方法就是低位优先法。14分配排序三、基数排序2基数排序基本思路基数排序就是用低位优先法对单关键字(或多关键字)排序的一种方法按低位优先法对关键字进行箱排序,通过“分配”和“收集”实现每趟排序。在每趟箱排序中,所需的箱子数就是基数r,这就是“基数排序”名称的由来15分配排序三、基
4、数排序3基数排序实例 36 5 16 98 95 47 32 36 48第一次装箱按关键字第一个分量(个位)将其装箱。 32 5 95 36 16 36 47 98 48第二次装箱按关键字第二个分量(十位)将其装箱。 5 16 32 36 36 47 48 95 98B0B3B4B5B6B7B8B9B1B2B0B3B4B5B6B7B8B9B1B2361636 59598484732361636 59598484732164、基数排序算法分配排序(1)数据描述#define d 4 /不妨设关键字位数d=4#define r 10/基数r为10typedef RecType DataType/队
5、列中元素的类型DataType设为RecType(2)装箱算法void Distribute(SeqList R,LinkQueue B,int j)/按关键字的第j个分量进行装箱 int i,k,t; for(i=1;i=n;i+)/依次扫描Ri,将其装箱 k=Ri.key; for(t=1;tj;t+) k=k/10;/使Ri.key的第j位成为k的最低位 k=k%10; /取关键字的第j位数字k EnQueue(&Bk,Ri); /将Ri装入箱子Bk三、链表的插入17void RadixSort(SeqList R)/对R1.n进行基数排序,Ri.key为非负整数,且位数不超过dLink
6、Queue Br; /10个箱子,每个都是链队列int i;for(i=0;ir;i+)InitQueue(&Bi); /箱子置空for(i= 1;i=d;i+) /从低位到高位做d趟箱排序Distribute(R,B,i); /第i趟装箱Collect(R,B); /第i趟收集分配排序(3)收集算法void Collect(SeqList R,LinkQueue B)/依次将各非空箱子中的记录收集起来 int i=1,j;/收集时从R1开始存放 for(j=0;jr;j+) while(!QueueEmpty(&Bj)DeQueue(&Bj,&Ri+); /将箱子Bj中的记录放入Ri(4)排序算法4、基数排序算法三、链表的插入18分配排序(1)时间性能 基数排序由于装箱和收集的时间复杂度是线性的,即O(n),而记录关键字的位数d与n无关,所以基数排序的时间复杂度是线性的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 碳素掺杂剂在铁合金冶炼中的应用考核试卷
- 森林公园生态旅游市场细分与定位考核试卷
- 农业农业机械产业节能减排配合服务批发考核试卷
- 矿物加工厂职业卫生与员工健康考核试卷
- 渔业资源保护与海洋资源长期可持续发展战略全面实施考核试卷
- 电信行业区块链技术探索与应用考核试卷
- 红富士苹果病虫害防治考核试卷
- 武汉民政职业学院《描述统计学和概率》2023-2024学年第一学期期末试卷
- 石家庄工程职业学院《环境学导论》2023-2024学年第二学期期末试卷
- 山西体育职业学院《高级应用气象统计》2023-2024学年第二学期期末试卷
- 陕西省西安铁一中2025届高考语文二模试卷含解析
- 病理性近视怎治疗
- 儿科护理一科一品
- GB/T 44804-2024声学自由场条件下18岁至25岁耳科正常人听力阈值的统计分布
- 医院感染课件教学课件
- 幼儿园孩子食物中毒培训
- 影响健康因素多 课件 2024-2025学年人教版(2024)初中体育与健康七年级全一册
- 【核心素养目标】9.1压强 教学设计 2023-2024学年教科版八年级下册物理
- 人美版高中美术必修《美术鉴赏》 第十三课 新艺术的实验-西方现代艺术 (教案)
- 宗亲联谊修谱会活动方案及流程
- 2025届江苏省南京市六区初三第二学期期中考试英语试题试卷含答案
评论
0/150
提交评论