第10章排序-6,7节,外部排序-cppt课件.ppt

第10章排序-6,7节,外部排序-cppt课件.ppt

ID:59197575

大小:555.50 KB

页数:39页

时间:2020-09-26

第10章排序-6,7节,外部排序-cppt课件.ppt_第1页
第10章排序-6,7节,外部排序-cppt课件.ppt_第2页
第10章排序-6,7节,外部排序-cppt课件.ppt_第3页
第10章排序-6,7节,外部排序-cppt课件.ppt_第4页
第10章排序-6,7节,外部排序-cppt课件.ppt_第5页
资源描述:

《第10章排序-6,7节,外部排序-cppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、10.1概述10.2插入排序10.3快速排序10.4选择排序10.5归并排序10.6基数排序10.7各种排序方法的综合比较基数排序是一种借助“多关键字排序”的思想来实现“单关键字排序”的内部排序算法。多关键字的排序链式基数排序10.6基数排序一、多关键字的排序n个记录的序列{R1,R2,…,Ri,…,Rn},每个记录Ri都有多可关键字(Ki0,Ki1,…,Kid-1)。其中:K0被称为“最主”位关键字,Kd-1被称为“最次”位关键字。如果对于序列中任意两个记录Ri和Rj(1≤i

2、词典)有序关系:(Ki0,Ki1,…,Kid-1)<(Kj0,Kj1,…,Kjd-1)(1,2,15)(2,1,20)(2,3,18)(3,1,20)(3,2,30)(1,2,15)(2,1,20)(2,3,18)(3,1,20)(3,2,30)有序无序则称序列{R1,…,Rn}对多关键字(Ki0,Ki1,…,Kid-1)有序。实现多关键字排序通常有两种作法:最高位优先MSD法:先对K0进行排序,并按K0的不同值将记录序列分成若干子序列之后,分别在每个子序列中对K1进行排序,...…,依次类推,直至

3、最后对最次位关键字排序完成为止。最低位优先LSD法:先对Kd-1进行排序,然后在次基础上直接对Kd-2进行排序,依次类推,直至对最主位关键字K0排序完成为止。例如:学生记录含三个关键字:(系号,班号,序号),要求对对学生记录排序,系号为主关键字。对K0排序对K1排序对K2排序无序序列3,2,301,2,153,1,202,3,182,1,201,2,152,3,183,1,202,1,203,2,30最高位优先MSD的排序过程如下:1,2,152,1,202,3,183,1,203,2,301,2,

4、152,1,202,3,183,1,203,2,30例如:学生记录含三个关键字:(系号,班号,序号),要求对对学生记录排序,系号为主关键字。对K2排序对K1排序对K0排序无序序列3,2,301,2,153,1,202,3,182,1,201,2,152,3,183,1,202,1,203,2,303,1,202,1,201,2,153,2,302,3,181,2,152,1,202,3,183,1,203,2,30最低位优先LSD的排序过程如下:二、链式基数排序基数排序法是一种不需要进行关键字间比较

5、的排序方法。其特点是:对于数字型或字符型的单关键字,可以看成是由多个数位或多个字符构成的多关键字,此时可以采用“分配-收集”的办法按最低位优先LSD进行排序。例如:对下列这组关键字{209,386,768,185,247,606,230,834,539}首先按其“个位数”取值分别为0,1,…,9“分配”成10组;(230),(834),(185),(386,606),(247),(768),(539,209){230,834,185,386,606,247,768,539,209}之后按从0至9的顺

6、序将它们“收集”在一起;然后按其“十位数”取值分别为0,1,…,9“分配”成10组;最后按其“百位数”重复一遍上述操作。“分配”{230,834,185,386,606,247,768,539,209}之后再按从0至9的顺序将它们“收集”在一起;(606,209),(230,834,539),(247),(768),(185,386){606,209,230,834,539,247,768,185,386}(185),(209,230,247),(386),(539),(606),(768),(83

7、4){185,209,230,247,386,539,606,768,834}然后“收集”在一起;在计算机上实现基数排序时,为减少所需辅助存储空间,应采用链表作存储结构,即链式基数排序,具体作法为:1.待排序记录以指针相链,构成一个链表;2.“分配”时,按当前“关键字位”所取值,将记录分配到不同的“链队列”中,每个队列中记录的“关键字位”相同;3.“收集”时,按当前关键字位取值从小到大将各队列首尾相链成一个链表;4.对每个关键字位均重复2)和3)两步。例如:p→369→367→167→239→237

8、→138→230→139进行第一次分配进行第一次收集f[0]r[0]f[7]r[7]f[8]r[8]f[9]r[9]p→230→230←→367←→167→237→367→167→237→138→368→239→139→369←→239→139→138←进行第二次分配p→230→237→138→239→139p→230→367→167→237→138→368→239→139f[3]r[3]f[6]r[6]→230←→237→138→239→139→367←→167→3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。