本文参考王道视频课以及王道教材,如有侵权即刻删除,仅作学习交流使用。
TIPS:外部排序历年考研次数相对较少,所以可考查的点不是很多;败者树,外部排序的影响和优化因素等情况,历年较少涉及,只在考优化外部排序的时候,与前面知识点多路归并一起考查,考的两年选择题,主要是K路归并的归并段的虚段补充,不排除考查其他知识点,但在复习时间不够的情况下,确实可以稍微忽略该段内容。
前置知识:
1,外存和内存的数据交换以数据块为单位,磁盘数据块中存放着各种数据;
2,磁盘的读写,也是以块为单位,数据读入内存后才能被修改,修改完之后还需写回内存;
外部排序的原因:假设排序一个1个10T级别的数据,无法一次全部读入内存,只能少量多次分批读入;这种情况下就需要把在外部的数据进行排序;
最低级要求:使用归并排序的思想,最低用三个块的大小,即可完成对外存中任意一个大小的文件进行排序,三个块分别是:2个输入缓冲区,1个输出缓冲区;
外部排序的时间开销,占大头的部分为读写外存的时间;
外部排序的步骤:生成r个初始归并段;进行N趟的k路归并;得到:。( S=[logk r] )
如何优化外部排序?
最佳归并树:k叉归并的最佳归并树一定是一颗严格k叉树,即树中只有度数为k,0的结点。