• 第十一章 外部排序


    第十一章 外部排序

    第十一章 外部排序

     

    一、内容提要

     

    1、外部排序指待排序文件较大,内存一次存放不下,尚需存放在外部介质的文件的排序。

    2、为减少平衡归并中外存读写次数所采取的方法:增大归并路数和减少归并段个数。

    3、利用败者树增大归并路数。

    4、利用置换—选择排序增大归并段长度来减少归并段个数。

    5、由长度不等的归并段,进行多路平衡归并,需要构造最佳归并树。

    6、磁带的多步归并排序。

     

    二、学习要点

     

    1、熟悉外部排序的两个阶段,归并过程。

    2、掌握外部排序过程中进行外存读/写次数的计算方法。

    3、“胜者树”增大归并路数不能减少外存读写次数,”败者树”可以胜任。掌握败者树建立及归并算法。

    4、  熟悉置换—选择排序的过程,理解它能得到平均长度为工作区两倍的初始归并段的道理。

    5、  熟练掌握最佳归并树的构造方法,及该过程中对外存读/写次数的计算方法。

    6、  了解磁带多步归并的特点,熟悉归并过程及设置虚假的方法,及归并过程所需外存读/写次数的计算方法。

     

    三、习题解析

     

    1.“败者树“中“败者“者指的是什么?若利用败者树求k的个数中的最大者,若在比较中有a>b,谁是败者。

    【解答】

       所谓”败者树”,就是在比赛(选择)树中,每个双亲结点存放两个子女结点中的”败者”,而让“胜者”参加高一层的比赛。在根结点之上,再加一个结点O,表示全局比赛获胜者。

    这里用败者树求k个数中最大者,若a>b, a 是胜者,b小则是败者。

     

    2.”败者树”与“堆”有何区别。

    【解答】”败者树”是由参加比赛的n个元素作叶子结点所形成的完全二叉树。而”堆”则是n个元素的序列,且具有如下性质:

              Ki<=K2i              或:  Ki>=K2i

               Ki<=K2i+1                Ki>=K2i+1      (0<=i<=n DIV 2)

    由于堆的这个性质中,下标i2i2i+1的关系,恰与完全二叉树第i个结点和它的子树结点序号关系完全一致,故堆可看成是含n个结点的完全二叉树。

     

    3.设有12个归并段,其长度分别为30448632060189626885。现欲作4路外部归并排序,试华出表示归并过程的最佳归并树,并计算WPL

    【解答】

       因(12-1MOD (4-1)=2,所以的第一次归并路数为2+1=3路,所以最佳归并树如下:             ____________( 413) __________

                          ╱ ╲            

     ______(64) ­­­­­­­­­_____      (68)    (85)    ______(196)_____

          ╱ ╲                                

    (9 )     (17)   (18)     ( 20)          (30)   (44)    ( 60)    (62)

    |

    (3)  (6)  (8)

    WPL=(3+6+8)*3+(9+18+20+30+44+60+62)*2+68+85*1

    =51+243*2+153*1

    =690

          

  • 相关阅读:
    DW吃瓜课程——机器学习理论知识笔记(四)
    DW吃瓜课程——机器学习理论知识笔记(三)
    DW吃瓜课程——机器学习理论知识笔记(二)
    DW吃瓜课程——机器学习理论知识笔记(一)
    DataWhale编程实践——区块链学习笔记
    CV入门系列笔记——全球人工智能技术创新大赛【热身赛】CV异常检测赛道
    强化学习入门笔记系列——DDPG算法
    强化学习入门笔记系列——稀疏奖赏和模仿学习
    强化学习入门笔记系列——DQN算法
    Java_SPI思想
  • 原文地址:https://www.cnblogs.com/lexus/p/2996480.html
Copyright © 2020-2023  润新知