408考研之数据结构的排序——外部排序

本文参考王道视频课以及王道教材,如有侵权即刻删除,仅作学习交流使用。

TIPS:外部排序历年考研次数相对较少,所以可考查的点不是很多;败者树,外部排序的影响和优化因素等情况,历年较少涉及,只在考优化外部排序的时候,与前面知识点多路归并一起考查,考的两年选择题,主要是K路归并的归并段的虚段补充,不排除考查其他知识点,但在复习时间不够的情况下,确实可以稍微忽略该段内容。

前置知识:

1,外存和内存的数据交换以数据块为单位,磁盘数据块中存放着各种数据;

2,磁盘的读写,也是以块为单位,数据读入内存后才能被修改,修改完之后还需写回内存;

外部排序的原因:假设排序一个1个10T级别的数据,无法一次全部读入内存,只能少量多次分批读入;这种情况下就需要把在外部的数据进行排序;

最低级要求:使用归并排序的思想,最低用三个块的大小,即可完成对外存中任意一个大小的文件进行排序,三个块分别是:2个输入缓冲区,1个输出缓冲区;

408考研之数据结构的排序——外部排序_第1张图片

外部排序的时间开销,占大头的部分为读写外存的时间;

外部排序的步骤:生成r个初始归并段;进行N趟的k路归并;得到:。(   S=[logk r]     )

如何优化外部排序?

408考研之数据结构的排序——外部排序_第2张图片

最佳归并树:k叉归并的最佳归并树一定是一颗严格k叉树,即树中只有度数为k,0的结点。

408考研之数据结构的排序——外部排序_第3张图片

你可能感兴趣的:(#,408数据结构——排序章节,考研,数据结构,排序算法)