第十章外部排序内容摘要:
5 6 调整败者树的方法 : 将新补充的结点与其双亲结点比较 , 败者留在该双亲结点 ,胜者继续向上直至树根的双亲 以在 b[4]补充 15为例 15 4与 3比较 4与 2比较 4 2与 5比较 2 5 调整败者树的方法 7 7 7 7 7 7 7 90 0 10 9 20 6 8 12 1 2 3 4 5 6 [k路归并对内存的要求 ] 至少要有 k个输入缓冲区和一个输出缓冲区 建败者树的过程 7 1 初始化败者树调整 b[6] 6 调整 b[5] 5 调整 44 调整 334 调整 22 调整 11 2 4 调整 005 4 建败者树的过程 [数据结构 ] (依据:败者树为完全二叉树 ) 主: b[0.. k] b[0.. k1]—— k个叶结点 ,存放 k个输入归并段中当前 参加归并的记录(缓冲区) b[k]—— 虚拟记录,该关键字取可能的最小值 minkey 辅: ls[0.. k1] —— 不含叶结点的败者树 存放最后胜出的编号( ls[0])以及所记录的败者编号 [处理步骤 ] 建败者树 ls[0.. k1] 重复下列操作直至 k路归并完毕 将 b[ls[0]]写至输出归并段 补充记录 (某归并段变空时 ,补 ),调整败者树 多路平衡归并算法 算法描述:建立败者树 void CreateLoserTree() { b[k] = MINKEY。 for (i = 0。 i k。 i++) ls[i] = k。 for (i = k 1。 i = 0。 i++) Adjust(i)。 } void Adjust(int s) { for (t = (s + k) / 2。 t 0。 t /= 2) { if (b[s] b[ls[t]]) s ls[t]。 } ls[0] = s。 } 算法描述 : K路合并 void K_Merge() { for (i = 0。 i k。 i++) input(i)。 /* 第 i路输入一个元素到 b[i] */ CreateLoserTree(ls)。 while (b[ls[0]] != MAXKEY) { q = ls[0]。 output(b[q])。 input(q)。第十章外部排序
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
第十章数模转换与模数转换接口及其应用
V CL,5 ;先把 AX内容左移 5位 SHL AX,CL MOV DX,AX ; DX为串行输出的数据 ,最高位为通道选择 MOV CX,11 ;循环 11次 DAC_PROC1: MOV AL,0 ;预置对 DATA线的置位复位字 SHL DX,1 ;取串行输出位 ADC AL,0 ;把串行输出位送到置位复位字的第 0位 OUT 86H,AL ;把 DATA线上串行输出位内容 MOV AL
第十四章遗传密码和遗传信息的翻译系统
. 利用重复共聚物破译密码 Khorara 采用了有机合成一条短的单链 DNA重复顺序, 然后用 DNA pol 1合成其互补链, 再用 RNA pol及不同的底物合成两条重复的RNA共聚物(图 14- 3),作为翻译的 mRNA ,加入到体外表达系统中, 5 39。 - T A C T A C T A C T A C - 339。 3 39。 - A T G A T G A T G A T