外部排序

定义问题

    外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。外部排序最常用的算法是多路归并排序,即将原文件分解成多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序。然后,对已经排序的子文件进行多路归并排序。

处理过程

     (1)按可用内存的大小,把外存上含有n个记录的文件分成若干个长度为L的子文件,把这些子文件依次读入内存,并利用有效的内部排序方法对它们进行排序,再将排序后得到的有序子文件重新写入外存;

      (2)对这些有序子文件逐趟归并,使其逐渐由小到大,直至得到整个有序文件为止。

案例

       先从一个例子来看外排序中的归并是如何进行的?
      假设有一个含10000 个记录的文件,首先通过10 次内部排序得到10 个初始归并段R1~R10 ,其中每一段都含1000 个记录。然后对它们作如图10.11 所示的两两归并,直至得到一个有序文件为止 
2012082920125492.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 春招的时候在某养猪场面试,面试官问了一个问题:“如何用256M内存的机器对一个2G的数据进行排序”。之前没看过这方...
    微辣鸡米饭阅读 13,444评论 3 17
  • 整理自《数据结构高分笔记》 1、概念和流程 基本概念所谓外部排序,即对外存中的记录进行排序(相对于内部排序而言),...
    文哥的学习日记阅读 4,770评论 0 1
  • 基本思想:将外部数据分成若干份,分别移动到内存进行排序后输出。再归并排序。链接1:http://blog.csdn...
    yingtaomj阅读 4,461评论 0 0
  • 外部排序 假设文件需要分成k块读入,需要从小到大进行排序。(1)依次读入每个文件块,在内存中对当前文件块进行排序(...
    yangqi916阅读 1,417评论 0 0
  • 八、外部排序 前面第七章介绍了内部排序需要把待排序数据全部放入内存中,然后再排序。这就限制了待排序数据的规模。当数...
    MinoyJet阅读 2,325评论 0 1