前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >11.3 多路平衡归并的实现

11.3 多路平衡归并的实现

原创
作者头像
小林C语言
修改2020-12-14 15:22:09
3210
修改2020-12-14 15:22:09
举报

01多路平衡归并的实现

1、2-路归并:令u个记录分布在两个归并段上,按merge过程进行归并。每得到归并后的一个记录,仅需一次比较即可,则得到含u个记录的归并段需进行u-1次比较。

2、k-路归并:令u个记录分布在k个归并段上,显然,归并后的第一个记录应是k个归并段中关键字最小的记录,即应从每个归并段的第一个记录的相互比较中选出最小者,需要进行k-1次比较。每得到归并后的有序段中的一个记录,都要进行k-1次比较。显然为得到含u个记录的归并段需进行(u-1)(k-1)次比较。

3、由以上得,对n个记录的文件进行外排时,在内部归并过程中进行的总的比较次数为s(k-1)(n-1)。

4、若在进行k-路归并时利用“败者树”(Tree of Loser),则可使在k个记录中选出关键字最小的记录时仅需进行log2^k次比较。

5、败者树:是树形选择排序的一种变型。

C语言 | 递归求年龄

更多案例可以go公众号:C语言入门到精通

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

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