正在加载图片...
R[]到R[i-1中关键字 emp. key=R[计+到R[h]的关键字(1s≤h) 当R[]到R[-和R[+]到R功]均非空时,分别对它们进行上述的划 分过程,直至所有无序子区中记录均已排好序为止。 要完成对当前无序区R山]到Rh]的划分,具体做法是:设置两个指针 i和j,它们的初值分别为i=1和j一h。不妨取基准为无序区的第1个 记录R(即R[]),并将它保存在变量temp中。令j自h起向左扫 描,直到找到第1个关键字小于 temp. key的记录Rj,将R]移至i 所指的位置上(这相当于交换了R和基准R[](即temp)的位置, 使关键字小于基准关键字的记录移到了基准的左边);然后,令i 自计+1起向右扫描,直至找到第1个关键字大于 temp. key的记录R[], 将R[]移至j指的位置上(这相当于交换了R和基准R[(即temp) 的位置,使关键字大于基准关键字的记录移到了基准的右边); 接着,令j自ⅳ1起向右扫描,如此交替改变扫描方向,从两端各 自往中间靠拢,直至亍j时,i便是基准ⅹ的最终位置,将x放在此位 置上就完成了一次划分R[1]到R[i-1]中关键字≤temp.key=R[i+1]到R[h]的关键字(1≤i≤h) 当R[1]到R[I-1]和R[I+1]到R[h]均非空时,分别对它们进行上述的划 分过程,直至所有无序子区中记录均已排好序为止。 要完成对当前无序区R[1]到R[h]的划分,具体做法是:设置两个指针 i和j,它们的初值分别为i=1和j=h。不妨取基准为无序区的第1个 记录R[i](即R[1]),并将它保存在变量temp中。令j自h起向左扫 描,直到找到第1个关键字小于temp.key的记录R[j],将R[j]移至i 所指的位置上(这相当于交换了R[j]和基准R[i](即temp)的位置, 使关键字小于基准关键字的记录移到了基准的左边);然后,令i 自i+1起向右扫描,直至找到第1个关键字大于temp.key的记录R[i], 将R[i]移至 j指的位置上(这相当于交换了R[j]和基准R[i](即temp) 的位置,使关键字大于基准关键字的记录移到了基准的右边); 接着,令j自j+1起向右扫描,如此交替改变扫描方向,从两端各 自往中间靠拢,直至i=j时,i便是基准x的最终位置,将x放在此位 置 上就完成了一次划分
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有