数据结构(C++版)(第二版)教学课件李根强第10章.pptVIP

  • 2
  • 0
  • 约5.5千字
  • 约 20页
  • 2019-10-08 发布于广东
  • 举报

数据结构(C++版)(第二版)教学课件李根强第10章.ppt

* * 第10章 外排序 本章学习内容 10.1 外排序的基本概念 10.2 多路平衡归并的实现 10.1 外排序的基本概念 内排序是直接在计算机内存中进行的。若要排序的数据一次可以装入计算机内存,则对这批数据的排序可以直接在内存中完成,因而,利用前面的内排序就可以了。若要排序的数据量很大,内存中一次装不下,要将数据放入外存(磁带、磁盘),这时,用内排序达不到我们的要求,必须用到本章介绍的外排序。而外排序是利用内存、外存来共同完成的。 外排序可以看成由两个独立的阶段组成。首先,按可用内存的大小,将外存上含n个记录的文件分成若干长度为m的子文件或段,依次读入内存并用上一章的内排序方法(一般用堆排序实现)完成每段的排序,再保存到外存;然后,对这些段进行归并,使归并段逐渐由小到大,直到得到整个文件有序为止。第一阶段就是上一章介绍的内排序方法,因此,本章主要讨论第二阶段的归并实现。 第二阶段的归并有二路平衡归并和多路平衡归并。下面先给出例子来说明,具体实现方法见下一节。 假设有一个含10000个记录的文件,内存一次只能装入1000个记录,则可以将文件分成10段,每段含1000个记录。首先通过10次内部排序得到10个初始归并段R1~R10,其中每一段都含有1000个记录(已经有序),再保存到外存中,然后可以利用二路平衡归并使整个文件有序。二路平衡归并见图10-1。 图10-1

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档