十章外部排序.ppt





《十章外部排序.ppt》由会员分享,可在线阅读,更多相关《十章外部排序.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、十章外部排序 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望本章内容本章内容p外存信息的存取p外部排序的基本方法归并排序法p多路平衡归并p置换-选择排序外部排序的应用对象保存在外存储器上的信息量很大的数据记录文件。外排序与内排序的差别p内部排序充分利用内存可以随机存取的特点,如n希尔排序中,相隔di的记录关键字可作比较;n堆排序中,完全二叉树中父Ri与子R2i,R2i+1可比n快速排序中,需正向和逆向访问记录序列p外存信息的定位和存取受其物理特性的限制外部排序的实
2、现手段在排序过程中,进行多次内外存之间的数据交换外部排序的特点外部排序的特点外排序基本方法:归并排序外排序基本方法:归并排序步骤步骤p生成若干初始归并串/顺串(文件预处理)n把含有把含有n个记录的文件,按内存缓冲区大小分成若干长度为个记录的文件,按内存缓冲区大小分成若干长度为L的子文件(段);的子文件(段);n分别调入内存用有效的内排序方法排序后送回外存;分别调入内存用有效的内排序方法排序后送回外存;p 多路合并n对初始归并串逐趟合并,直至最后在外存上得到整个有序文件为止对初始归并串逐趟合并,直至最后在外存上得到整个有序文件为止例例某文件共10000个记录,设每个物理块可以容纳200个记录,内
3、存缓冲区可以容纳5个物理块 1)经过10次内排序后得到10个初始归并段R1R10 2)采用两路归并,需四趟可以得到排好序的文件 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 2000 2000 2000 2000 2000 4000 4000外排序总时间:8000 内排序:10tIS 10000 I/O操作:100tIO(排序)+(100+80+80+100)tIO(归并)=460tIO 归并:(10000+8000+8000+10000)tmg=46000 tmg提高外排序效率的途径提高外排序效率的途径 p扩大初始归并段长度,从而减少初始归并段个数mp进行多路(k路)归并减少
4、合并趟数减少合并趟数s,以减少,以减少I/O次数次数s=logkm多多 路路 归归 并并多路平衡归并多路平衡归并通过简单比较进行通过简单比较进行K路归并存在的问题路归并存在的问题 设记录总数为n,初始归并段的个数为m,从k个记录中选择一个关键字最小的记录时的比较次数为c则s趟内部归并总的比较次数为:C=sc(n-1)=logkm c(n-1)=log2m/log2k c(n-1)k,s,可减少I/O次数;k,c=(k-1),归并效率解决矛盾的方法解决矛盾的方法 利用“败者树”选关键字最小的记录 此时c=log2k则 C=log2m(n-1),与k无关矛盾1 2 k胜者树胜者树(树形选择排序树形
5、选择排序)6 8 6 8 9 8 9 6 8 90 9 15 8 90 10 9 20 6 8 12 10 9 20 15 8 12 10 9 20 6 8 12 90 10 9 20 15 8 12 90 14 22 24 15 16 17 92 14 22 24 25 16 17 92 26 38 30 25 50 18 97 26 38 30 50 18 97 7路合并胜者树路合并胜者树 重构后的胜者树重构后的胜者树 重构胜者树时,从根结点至新补入记录的叶结点的重构胜者树时,从根结点至新补入记录的叶结点的路径上的所有结点都必须更新。路径上的所有结点都必须更新。败者树败者树 5 2 2 0
6、 4 0 1 3 6 90 1 3 6 90 10 9 20 6 8 12 10 9 20 15 8 12 10 9 20 6 8 12 90 10 9 20 15 8 12 90 14 22 24 15 16 11 92 14 22 24 25 16 11 92 26 38 30 25 50 18 97 26 38 30 50 18 97 7路合并败者树 重构后的败者树败者树的特点:记录败者,胜者参加下一轮比赛 败者树的优点:重构时修改结点较少01 2 3 4 5 64ls05ls01 2 3 4 5 60 4 5 2 0 1 3 6 90 0 10 9 20 6 8 12 1 2 3 4
7、5 6调整败者树的方法:将新补充的结点与其双亲结点比较,败者留在该双亲结点,胜者继续向上直至树根的双亲以在b4补充15为例154与3比较4与2比较42与5比较25调整败者树的方法调整败者树的方法 7 7 7 7 7 7 7 90 0 10 9 20 6 8 12 1 2 3 4 5 6k-路归并对内存的要求路归并对内存的要求 至少要有k个输入缓冲区和一个输出缓冲区建败者树的过程7-1初始化败者树调整b66调整b55调整b44调整b334调整b22调整b1124调整b0054建败者树的过程建败者树的过程数据结构数据结构(依据:败者树为完全二叉树)p主:b0.k b0.k-1k个叶结点 ,存放k个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 外部 排序

限制150内