外部排序要点摘记

来源:互联网 发布:usb数据采集卡 编辑:程序博客网 时间:2024/06/15 23:04

  当待排序数据量很大,机器内存容量无法满足排序需求时,就需要用到外部排序。

        外部排序基本算法:分段进行内部排序,然后进行归并。
        外部排序算法关键点:尽量减少外存读写次数,因为外存设备的读写速度与内存比相差很大(上千倍)。在分段内排阶段,每个数据都会读入/写出内存一次且只一次,因此要减少读写次数主要是减少归并排序的趟数,因为每一趟归并就要把所有数据读写一次。

两种方法:
        1、多路归并,即每次归并多个分段,以减少归并趟数。一般的归并排序比较次数会随路数k的上升而上升,但通过使用‘败者树’技术,可以使比较次数与k无关。
        2、采用置换-排序算法减少初始归并段的数量。但此算法产生的分段长度不一,需要生成分段索引以便对分段进行寻址。另外,还要利用哈夫曼算法生成一棵最佳归并树,以减少外存读写次数。