基数排序2011s

基数排序2011s

ID:37594374

大小:230.76 KB

页数:89页

时间:2019-05-25

基数排序2011s_第1页
基数排序2011s_第2页
基数排序2011s_第3页
基数排序2011s_第4页
基数排序2011s_第5页
资源描述:

《基数排序2011s》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、10.6基数排序基数排序是一种借助“多关键字排序”的思想来实现“单关键字排序”的内部排序算法。多关键字的排序链式基数排序一、多关键字的排序n个记录的序列{R,R,…,R}12n对关键字(K0,K1,…,Kd-1)有序是指:iii对于序列中任意两个记录R和Rij(1≤i

2、排序,并按K0的不同值将记录序列分成若干子序列之后,分别对K1进行排序,...…,依次类推,直至最后对最次位关键字排序完成为止。先对Kd-1进行排序,然后对Kd-2进行排序,依次类推,直至对最主位关键字K0排序完成为止。排序过程中不需要根据“前一个”关键字的排序结果,将记录序列分割成若干个(“前一个”关键字不同的)子序列。例如:学生记录含三个关键字:系别、班号和班内的序列号,其中以系别为最主位关键字。LSD的排序过程如下:无序序列3,2,301,2,153,1,202,3,182,1,20对K2排序1,2,152

3、,3,183,1,202,1,203,2,30对K1排序3,1,202,1,201,2,153,2,302,3,18对K0排序1,2,152,1,202,3,183,1,203,2,30二、链式基数排序假如多关键字的记录序列中,每个关键字的取值范围相同,则按LSD法进行排序时,可以采用“分配-收集”的方法,其好处是不需要进行关键字间的比较。对于数字型或字符型的单关键字,可以看成是由多个数位或多个字符构成的多关键字,此时可以采用这种“分配-收集”的办法进行排序,称作基数排序法。例如:对下列这组关键字{209,386

4、,768,185,247,606,230,834,539}首先按其“个位数”取值分别为0,1,…,9“分配”成10组,之后按从0至9的顺序将它们“收集”在一起;然后按其“十位数”取值分别为0,1,…,9“分配”成10组,之后再按从0至9的顺序将它们“收集”在一起;最后按其“百位数”重复一遍上述操作。在计算机上实现基数排序时,为减少所需辅助存储空间,应采用链表作存储结构,即链式基数排序,具体作法为:1.待排序记录以指针相链,构成一个链表;2.“分配”时,按当前“关键字位”所取值,将记录分配到不同的“链队列”中,每个

5、队列中记录的“关键字位”相同;3.“收集”时,按当前关键字位取值从小到大将各队列首尾相链成一个链表;4.对每个关键字位均重复2)和3)两步。例如:p→369→367→167→239→237→138→230→139进行第一次分配f[0]r[→230←0]f[7]r[→367→167→237←7]f[8]r[→138←8]f[9]r[→369→239→139←9]进行第一次收集p→230→367→167→237→138→369→239→139p→230→367→167→237→138→369→239→139进行第二次

6、分配f[3]r[→230→237→138→239→139←3]f[6]r[→367→167→369←6]进行第二次收集p→230→237→138→239→139→367→167→369p→230→237→138→239→139→367→167→369进行第三次分配f[1]r[→138→139→167←1]f[2]r[→230→237→239←2]f[3]r[→367→369←3]进行第三次收集之后便得到记录的有序序列p→138→139→167→230→237→239→367→369提醒注意:1.“分配”和“收集”

7、的实际操作仅为修改链表中的指针和设置队列的头、尾指针;2.为查找使用,该链表尚需应用算法Arrange将它调整为有序表。基数排序的时间复杂度为O(d(n+rd))其中:分配为O(n)收集为O(rd)(rd为“基”)d为“分配-收集”的趟数p→012345673691367216732394237513862307-1391进行第一次分配f[0]=r[0]=-1;f[1]=r[1]=-1;f[2]=r[2]=-1;f[3]=r[3]=-1;f[4]=r[4]=-1;f[5]=r[5]=-1;f[6]=r[6]=-1

8、;f[7]=r[7]=-1;f[8]=r[8]=-1;f[9]=r[9]=-1;p→012345673691367216732394237513862307-1391进行第一次分配f[0]=r[0]=-1;f[1]=r[1]=-1;f[2]=r[2]=-1;f[3]=r[3]=-1;f[4]=r[4]=-1;f[5]=r[5]=-1;f[6]=r[6]=-1;f[7]=r

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

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

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