外部排序

外部排序

假设文件需要分成k块读入,需要从小到大进行排序。
(1)依次读入每个文件块,在内存中对当前文件块进行排序(应用恰当的内排序算法)。此时,每块文件相当于一个由小到大排列的有序队列。
(2)在内存中建立一个最小值堆,读入每块文件的队列头。
(3)弹出堆顶元素,如果元素来自第i块,则从第i块文件中补充一个元素到最小值堆。弹出的元素暂存至临时数组。
(4)当临时数组存满时,将数组写至磁盘,并清空数组内容。
(5)重复过程(3)、(4),直至所有文件块读取完毕。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 春招的时候在某养猪场面试,面试官问了一个问题:“如何用256M内存的机器对一个2G的数据进行排序”。之前没看过这方...
    微辣鸡米饭阅读 10,171评论 3 17
  • 八、外部排序 前面第七章介绍了内部排序需要把待排序数据全部放入内存中,然后再排序。这就限制了待排序数据的规模。当数...
    MinoyJet阅读 300评论 0 1
  • 基本思想:将外部数据分成若干份,分别移动到内存进行排序后输出。再归并排序。链接1:http://blog.csdn...
    yingtaomj阅读 919评论 0 0
  • 整理自《数据结构高分笔记》 1、概念和流程 基本概念所谓外部排序,即对外存中的记录进行排序(相对于内部排序而言),...
    文哥的学习日记阅读 1,088评论 0 1
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,386评论 11 349