普通的归并方式,可能就是叫多路归并吧,就是在比较的时候用逐个比较的方法,比较次数:
1.选择树(也叫K路平衡归并)——优化外排的比较步骤
包括胜者树、败者树,
用于多路归并,选择出K条路(已经排好序)中每条路第一个元素中最小的元素。
关于为什么“多路归并”与外排配合而不是“堆排序”与外排配合:
原因是多路归并只需要占用内存空间O(n)的大小就够用了,但是如果是使用堆排序就需要将所有待排序的数据都写进去,这样的数据量远远地超过了内存空间的大小。
2.置换-选择排序(用于优化初始生成归并段的过程)
用于生成更少的初始归并段,以减少后序的归并的趟数
就按排号的那种规则,选小的进去了,但是后来进来的要是过了自己的那个号,就不能再进去了。
3.最佳归并树
由置换选择排序得到的结果每个归并段并不等长,为了得到一种磁盘读写次数最小的归并方式,使用哈夫曼树来进行归并,也就是最佳归并树