【精品】【考研计算机专业课】武汉大学数据结构PPT课件 第11章外排序精品ppt课件.ppt





《【精品】【考研计算机专业课】武汉大学数据结构PPT课件 第11章外排序精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】【考研计算机专业课】武汉大学数据结构PPT课件 第11章外排序精品ppt课件.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【考研计算机专业课】武汉大学数据结构PPT课件 第11章 外排序11.1外排序概述外排序概述 文文件件存存储储在在外外存存上上,因因此此外外排排序序方方法法与与各各种种外外存存设设备备的的特特征征有有关关,外外存存设设备备大大体体上上可可分分为为两两类类,一一类类是是顺顺序序存存取取设设备备,例例如如磁磁带带,另另一一类类是是直直接接存存取取设设备备,例例如如磁磁盘盘,其其结结构构如下图所示。如下图所示。外排序的基本方法是归并排序法。它分为以下两个步骤:外排序的基本方法是归并排序法。它分为以下两个步骤:(1)生生成成若若干干初初始始归归并并段段(顺顺串串):这这一一过过程程也也称称为为文文件预
2、处理:件预处理:把把含含有有n个个记记录录的的文文件件,按按内内存存大大小小分分成成若若干干长长度度为为L的子文件(归并段);的子文件(归并段);分分别别将将各各子子文文件件(归归并并段段)调调入入内内存存,采采用用有有效效的的内内排序方法排序后送回外存。排序方法排序后送回外存。(2)多多路路归归并并:对对这这些些初初始始归归并并段段进进行行多多遍遍归归并并,使使得得有有序序的的归归并并段段逐逐渐渐扩扩大大,最最后后在在外外存存上上形形成成整整个个文文件件的的单单一一归并段,也就完成了这个文件的外排序。归并段,也就完成了这个文件的外排序。内存内存abc.databc1.databc2.data
3、bcn.dat内存内存abc1.databc2.databcn.databc.dat第第1步步第第2步步有序有序均有序均有序某算法某算法某排序算法:只能是归并算法某排序算法:只能是归并算法11.2磁盘排序磁盘排序11.2.1磁盘排序过程磁盘排序过程磁磁盘盘是是直直接接存存取取设设备备,读读/写写一一个个数数据据块块的的时时间间与与当当前前读读/写头所处的位置关系不大。写头所处的位置关系不大。通通过过一一个个例例子子来来说说明明磁磁盘盘排排序序的的过过程程。设设有有一一个个文文件件,内内含含4500个个记记录录:A1,A2,A4500,现现在在要要对对该该文文件件进进行行排排序序,但但可可占占用
4、用的的内内存存空空间间至至多多只只能能对对750个个记记录录进进行行排排序序。输输入入文文件件(被被排排序序的的文文件件)放放在在磁磁盘盘上上,页页块块长长为为250个个记记录录。排序过程可如下进行:排序过程可如下进行:做做内内部部归归并并时时,在在k个个记记录录中中选选择择最最小小者者,需需要要顺顺序序比比较较k-1次次。每每趟趟归归并并u个记录需要做个记录需要做(u-1)*(k-1)次比较,次比较,s趟归并总共需要的比较次数为:趟归并总共需要的比较次数为:s*(u-1)*(k-1)=logkm*(u-1)*(k-1)=log2m*(u-1)*(k-1)log2k 其其中中,log2m*(u
5、-1)在在初初始始归归并并段段个个数数m与与记记录录个个数数u一一定定时时是是常常量量,而而(k-1)log2k 在在k增增大大时时趋趋于于无无穷穷大大。因因此此增增大大归归并并路路数数k,会会使使内内部部归归并并的的时时间间增增大大。若若k增增大大到到一一定定的的程程度度,就就会会抵抵消消掉掉由由于于减减少少读读写写磁磁盘盘次次数数而而赢赢得的时间。得的时间。u u个记录个记录 log2m 趟趟下面讨论利用下面讨论利用败者树败者树实现多路平衡归并。实现多路平衡归并。败者树是一棵有败者树是一棵有k个叶结点的完全二叉树,叶子结点存储个叶结点的完全二叉树,叶子结点存储记录,非叶结点可由关键字和它对
6、应的记录地址构成,为讨论记录,非叶结点可由关键字和它对应的记录地址构成,为讨论方便起见,设非叶结点的结构为:方便起见,设非叶结点的结构为:关键字关键字,输入有序段的路号输入有序段的路号对对k个输入有序段进行个输入有序段进行k路平衡归并的方法如下:路平衡归并的方法如下:(1)取取每每个个输输入入有有序序段段的的第第一一个个记记录录作作为为败败者者树树的的叶叶子子结结点点,建建立立初初始始败败者者树树:两两两两叶叶结结点点进进行行比比较较,在在双双亲亲结结点点中中记记录录比比赛赛的的败败者者(关关键键字字较较大大者者),而而让让胜胜者者去去参参加加更更高高一一层层的的比比赛,如此在根结点之上胜出的
7、赛,如此在根结点之上胜出的“冠军冠军”是关键字最小者。是关键字最小者。(2)胜胜出出的的记记录录写写至至输输出出归归并并段段,在在对对应应的的叶叶结结点点处处,补补充充其其输输入入有有序序段段的的下下一一个个记记录录,若若该该有有序序段段变变空空,则则补补充充一一个个大大关关键键字字(比比所所有有记记录录关关键键字字都都大大,设设为为kmax)的的虚虚记记录。录。(3)调调整整败败者者树树,选选择择新新的的关关键键字字最最小小的的记记录录:从从补补充充记记录录的的叶叶结结点点向向上上和和双双亲亲结结点点的的关关键键字字比比较较,败败者者留留在在该该双双亲结点,胜者继续向上,直至树根的双亲。亲结
8、点,胜者继续向上,直至树根的双亲。(4)若若胜胜出出的的记记录录关关键键字字等等于于kmax,则则归归并并结结束束;否否则则转(转(2)继续。)继续。例如例如,设有设有5个初始归并段,它们中各记录的关键字分别是:个初始归并段,它们中各记录的关键字分别是:R1:17,21,R2:5,44,R3:10,12,R4:29,32,R5:15,56,其中其中,是段结束标志。利用败者树进行是段结束标志。利用败者树进行5路平衡归并排序的路平衡归并排序的过程如下图所示。过程如下图所示。建建立立初初始始败败者者树树重购后的败者树(粗线部分结点发生改变)重购后的败者树(粗线部分结点发生改变)从从中中看看到到,k路
9、路平平衡衡归归并并的的败败者者树树的的深深度度为为 log2k,在在每每次次调调整整找找下下一一个个具具有有最最小小关关键键字字记记录录时时,最最多多做做 log2k 次次关关键键字字比比较较。因因此此利利用用败败者者树树在在k个个记记录录中中选选择择最最小小者者,只只需需要要进进行行O(log2k)次次关关键键字字比比较较,这时归并总共需要的比较次数为:这时归并总共需要的比较次数为:s*(u-1)*log2k=logkm*(u-1)*log2k=log2m*(u-1)*log2k log2k=log2m*(u-1)u u个记录个记录 logkm 趟趟这这样样,关关键键字字比比较较次次数数与与
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 考研计算机专业课 【精品】【考研计算机专业课】武汉大学数据结构PPT课件 第11章 外排序精品ppt课件 考研 计算机 专业课 武汉大学 数据结构 PPT 课件 11 外排

限制150内