• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 外部排序归并时,使用败者树还是最小堆?

外部排序归并时,使用败者树还是最小堆?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了败者树,最佳归并树,归并树,食戟败者,胜者为王败者为寇等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:外部排序归并时,使用败者树还是最小堆?
描述:

背景

外部排序的介绍,参考资料:外部排序wiki介绍。

实际上,中文wiki上的介绍中,直接使用了最小堆来做排序后的多个子文件的归并,以得到最终的排序序列。而在我看到的很多网上资料上,却是介绍使用败者树,比如如下链接: 链接1、 链接2、 链接3。

我的理解

按照我的理解,最小堆实现和败者树实现理应在时间复杂度和空间复杂上差不多(虽然败者树需要额2k的空间,而最小堆本身只需要k的空间,但最小堆每个元素被取出后,还需要确定是从哪个顺串中补充元素,故也需要增加额外的空间标记堆中元素所在的顺串),这两者有什么区别呢,或者如何选择?

PS

实际上,我在网上查阅败者树的资料时,并没有找到英文资料-,-,让我很费解。请大家赐教~


解决方案1:

首先感谢楼主给出的连接,学到不少,但我的理解跟你的理解不太一样,外排序分成两部分来实现的,第一部分是将一个大文件分成几个有序的小文件,第二部分是将几个有序的小文件合成一个大的有序文件,维基百科上说的是用最小堆实现的选择置换法来优化第一部分的排序,而其他链接中给的败者树是用来优化第二部分的。你给的第二个链接,我感觉讲的非常到位。仔细阅读下。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 外部排序归并时,使用败者树还是最小堆?

相关文章

  • 2017-06-07 (python)Tornado的异步非阻塞到底是怎么实现的呢?
  • 2017-06-07 天蝎座是几月几号到几月几号大神能不能普及一下这几个编程概念
  • 2017-06-07 GitHubHTML嵌入
  • 2017-06-07 (python)频繁地将项目所在目录导入到syspath有什么好处与坏处?
  • 2017-06-07 (ruby)ActiveRecord::ConnectionNotEstablished
  • 2017-06-07 flask是如何处理多个访问请求的?
  • 2017-06-07 app直接上传图片到七牛服务器后,业务服务器如何取得图片的尺寸?
  • 2017-06-07 composer安装Laravel无报错,但是访问显示500错误
  • 2017-06-07 为什么我刚充了10元钱没冲进去,钱扣了,但余额却没变?
  • 2017-06-07 phplaravelDBjoin字段名称修改

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 比较排序的最小比较次数问题
    • qrsync是否有ARM架构的支持?
    • 七牛C#能在putfile后让服务器生成缩略图并返回缩略图地址?
    • (python)requests批量输出,如何只输出特定的参数
    • Shell脚本中转义
    • scrapy的headerauthorization
    • pythonwordcloudwhlisnotasupportedwheelonthisplatform
    • 调整音频模型以实现更好的语音识别
    • publickeytoken(python)如何用正则表达式匹配标签里面的a标签
    • (shell)`cp`命令在拷贝整个目录的时候是否可以不包括隐藏文件?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有