第14周外排序第3讲-磁盘排序-多路平衡归并.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第14周外排序第3讲-磁盘排序-多路平衡归并.pdf》由会员分享,可在线阅读,更多相关《第14周外排序第3讲-磁盘排序-多路平衡归并.pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、11.2.2 多路平衡归并多路平衡归并 1、 k路路平衡平衡归并概述归并概述 2路平衡归并:每一趟从路平衡归并:每一趟从m个归并段得到个归并段得到 m/2 个个归并段。归并段。 m8,k=2 例如:例如: log2m =3遍遍 什么是什么是k路平衡归并路平衡归并 一般地,一般地,2路平衡归并的前提:路平衡归并的前提:初始归并段的记录个数都相同。初始归并段的记录个数都相同。 可以推广到可以推广到k路路平衡归并平衡归并 归并时需要归并时需要读写磁盘的次数读写磁盘的次数 归并时需要关键字比较的次数归并时需要关键字比较的次数。 影响影响k路平衡归并的效率路平衡归并的效率 的的因素:因素: 影响影响k路
2、平衡归并的因素路平衡归并的因素 m8,假设每个归并段,假设每个归并段4个记录:个记录:k=2 读读记录次数记录次数 = WPL = 8 4 3 = 96 (如果每个记录占用一个物理块,(如果每个记录占用一个物理块,读写磁盘次数读写磁盘次数=96 2=192次次) 例如例如 k路平衡归并时读写磁盘次数的计算路平衡归并时读写磁盘次数的计算 采用采用k路平衡归并时,通常路平衡归并时,通常k越大,读写磁盘次数越大,读写磁盘次数会减少会减少。 采用采用k路平衡归并时路平衡归并时,则相应的归并树有则相应的归并树有 logkm +1层层,要对数据进行要对数据进行 logkm 趟扫描趟扫描。 m8 k2 lo
3、gkm 趟趟=3 k路平衡归并时关键字比较次数的计算路平衡归并时关键字比较次数的计算 logkm (u- -1) (k- -1) = log2m / log2k (u- -1) (k- -1) = log2m (u- -1) (k- -1) log2k u个记录个记录 logkm 趟趟 每一每一趟需趟需(u- -1)(k- -1)次次 关键字比较关键字比较 总共需要的总共需要的关键字比较次数关键字比较次数为:为: 总共总共需要的关键字比较次数需要的关键字比较次数: 结论:结论:增大增大归并路数归并路数k,读写磁盘次数减少,而关键字比较次数会,读写磁盘次数减少,而关键字比较次数会 增大。若增大。
4、若k增大到一定的程度,就会抵消掉由于减少读写磁盘次数而赢增大到一定的程度,就会抵消掉由于减少读写磁盘次数而赢 得的时间。得的时间。 log2m (u- -1) (k- -1) log2k 在初始归并段个数在初始归并段个数m与记录与记录个数个数u确定时确定时是常量是常量 (k- -1) log2k 在在k增大时会增大增大时会增大 利用利用败者树实现败者树实现k路平衡归并的路平衡归并的过程过程是:是: 2、 利用利用败者树实现败者树实现k路平衡归并过程路平衡归并过程 败者树败者树用于用于在在k个记录中选取最小关键字的记录个记录中选取最小关键字的记录。败者树类。败者树类 似于堆排序中的似于堆排序中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内