外部排序

作者: 阿凡提说AI | 来源:发表于2017-02-04 16:29 被阅读111次

    定义问题

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

    处理过程

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

    案例

           先从一个例子来看外排序中的归并是如何进行的?
          假设有一个含10000 个记录的文件,首先通过10 次内部排序得到10 个初始归并段R1~R10 ,其中每一段都含1000 个记录。然后对它们作如图10.11 所示的两两归并,直至得到一个有序文件为止 
    
    2012082920125492.jpg

    相关文章

      网友评论

        本文标题:外部排序

        本文链接:https://www.haomeiwen.com/subject/vpzjittx.html