前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >7.7.4 置换选择排序(生成初始归并段)

7.7.4 置换选择排序(生成初始归并段)

作者头像
week
发布2018-08-24 17:03:10
1.4K0
发布2018-08-24 17:03:10
举报
文章被收录于专栏:用户画像用户画像

7.7.3讨论了如何使用m路归并来减少磁盘访问次数。从第7.7.2的讨论可知,减少初始归并段个数r也可以减少归并趟数S。若总的记录个数为n,每个归并段的长度为L,则归并段的个数m=[n/L]。如果采用前面介绍的内部排序方法,将得到长度相同的初始归并段。因此,必须探索新的算法俩生成初始归并段,这就是本节介绍的置换-选择算法。

设初始待排文件FI,初始归并段文件为FO,内存工作区为WA,内存工作区可容纳W个记录。置换-选择算法的步骤如下:

1)从待排文件FI输入W个记录到工作区WA.

2)从内存工作区WA中选出其中关键字最小的记录,记为MINIMAX.(以后再选出关键字比它大的记录纳入本归并段,比它小的归入下一归并段)

3)将MINIMAX记录输出到FO中去。

4)若FI未读完,则从FI输入下一个记录到WA中。

5)从WA中所有关键字比MINIMAX记录的关键字大的记录中选出最小的关键字记录,作为新的MINIMAX。

6)重复3)~5)直到在WA中选不出新的MINMAX记录为止,由此得到一个初始归并段,输出一个归并段的结束标志到FO中去。

7)重复2)~6)直到WA为空,由此得到全部初始归并段。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年09月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档