⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text7-43.htm

📁 浙江大学计算机学院数据结构课程的教学课件
💻 HTM
字号:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" link="#0000FF" vlink="#3399FF" alink="#FF0066">
<div id="Layer1" style="position:absolute; width:711px; height:21px; z-index:1; top: 10px; background-color: #CCCCCC; layer-background-color: #CCCCCC; border: 1px none #000000; left: 26px"><b>|</b><font face="宋体" size="2"><a href="../text1/text1-0.htm">第一章</a></font><b>|</b><font face="宋体" size="2"><a href="../text2/text2-0.htm">第二章</a></font><b>|</b><font face="宋体" size="2"><a href="../text3/text3-0.htm">第三章</a></font><b>|</b><font face="宋体" size="2"><a href="../text4/text4-0.htm">第四章</a></font><b>|</b><font face="宋体" size="2"><a href="../text5/text5-0.htm">第五章</a></font><b>|</b><font face="宋体" size="2"><a href="../text6/text6-0.htm">第六章</a></font><b>|</b><font face="宋体" size="2">第七章</font><b>|</b><font face="宋体" size="2"><a href="../text8/text8-0.htm">第八章</a></font><b>|</b><font face="宋体" size="2"><a href="../text9/text9-0.htm">第九章</a></font><b>|</b><font face="宋体" size="2"><a href="../text10/text10-0.htm">第十章</a></font><b>|</b><font size="2" face="宋体"><a href="../textA/textA-0.htm">算法分析</a><b><font color="#000000">|</font></b> 
  </font></div>
<pre align="left"><font face="Arial, Helvetica, sans-serif" size="4" color="#000000"><b>
<font color="#FF0000">buffering algorithm</font>

<i><font size="3" color="#CC0099">step 1:</font></i> input the first block of the k runs setting up k linked 
             queues each having one block of data.
             put the remaining k input blocks into a linked stack of 
             free input blocks. set ou to 0.

<i><font size="3" color="#CC0099">step 2:</font></i> let lastkey [i] be the last key input from run i. let 
             nextrun be the run for which lastkey is minimum.if 
             lastkey [nextrun]  < > <img src="image/da1.gif" width="36" height="16" align="middle"> then initiate the input of 
             the next block from run nextrun.

<i><font size="3" color="#CC0099">step 3:</font></i> use a function kwaymerge to merge records from the
             k input queues into the output buffer ou. merging 
             continues until either the output buffer gets full or a 
             record with key <img src="image/da1.gif" width="36" height="16" align="middle"> is merged into ou. if,  during 
             this merge , an input buffer becomes empty before 
             the output buffer gets full or before a <img src="image/da1.gif" width="36" height="16" align="middle">  is merged 
             into a ou,  the kwaymerge advances to the next 
             bufferon the same queue and returns the empty 
             buffer to the stack of empty buffers.However ,  if an 
             input buffer becomes empty at the same time as the 
             output buffer gets full or <img src="image/da1.gif" width="36" height="16" align="middle">  is merged into ou, 
             the empty buffer is left on the queue and kwaymerge 
             does not advance to the next buffer on the queue. 
             Rather,   the merge terminate.

<font color="#CC0099" size="3"><i>step 4:</i></font> wait for any ongoing disk input/output to complete.

<i><font size="3" color="#CC0099">step 5:</font></i> if an input buffer has been read,  add it to the queue 
             for the appropriate run. Determine the next run to 
             read from by determining nextrun such that 
             lastkey[nextrun] is minimum.

<i><font size="3" color="#CC0099">step 6:</font></i> if lastkey [nextrun]  <img src="image/da.gif" width="60" height="16" align="middle">  ,  then initiate reading 
             the next block from run nextrun into a free input 
             buffer. 

<i><font size="3" color="#CC0099">step 7:</font></i> initiate the writing of output buffer ou. Set ou = 1- ou.

<i><font size="3" color="#CC0099">step 8:</font></i> if a record with key + <img src="image/da1.gif" width="36" height="16" align="middle"> has not been merged into
             the output buffer go back to step 3.Otherwise,  wait 
             for the ongoing write to complete and then terminate.

</b></font></pre>
<table width="731" cellspacing="0" cellpadding="0">
  <tr> 
    <td width="327">&nbsp;</td>
    <td width="271"><a href="../index.htm"><img width="60" height="25" usemap="#MapMap4" border="0" src="../../images/home.gif"></a><a href="../index.htm"><map name="MapMap4"><area shape="rect" coords="42,-34,88,-15" href="text0.htm"><area shape="rect" coords="4,4,55,23" href="text7-index.htm"></map></a></td>
    <td width="131"><font face="楷体_GB2312" size="2"><b><a href="text7-42.htm">上一页</a> 
      <a href="text7-44.htm">下一页</a> </b></font></td>
  </tr>
</table>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -