📄 text7-20.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"><b><font face="Arial, Helvetica, sans-serif" size="4" color="#000000">
(3) <font color="#FF0000">Recursive merge sort</font> O(<img src="image/nlogn.gif" width="79" height="24" align="middle"> )
typedef struct { int key:
<i><font size="3" color="#CC0099"> /* other field */</font></i>
int link;
} element;
int<font color="#FF0000"> rmerge</font>(element list[ ], int lower, int upper) <i><font color="#FF0000">rmerge (list,0,n-1)</font></i>
<i><font size="3" color="#CC0099">/* sort the list, list[lower],..., list[upper].The link
field in each record is initially set to -1 */</font></i></font></b></pre>
<table width="727" cellspacing="0" height="34">
<tr>
<td width="372">
<pre><b><font face="Arial, Helvetica, sans-serif" size="4" color="#000000"> { int middle;
if (lower >= upper)
return lower;
else {</font></b></pre>
</td>
<td width="349"><img src="image/rmerge.gif" width="299" height="81"></td>
</tr>
</table>
<pre align="left"><b><font face="Arial, Helvetica, sans-serif" size="4" color="#000000"> middle = (lower+upper) / 2;
return <font color="#FF0000">listmerge</font>(list,<font color="#FF0000"> rmerge</font> (list, lower, middle),
<font color="#FF0000"> rmerge</font> (list, middle + 1, upper));
}
}
int <font color="#FF0000">listmerge</font>(element list[ ], int first, int second)
<i><font size="3" color="#CC0099">/* merge lists pointed to by first and second */</font></i>
{
int start = n;
while (first != -1 && second != -1)
if (list[first].key <= list[second].key){
<i><font size="3" color="#CC0099"> /* key in first list is lower,link this eleme
nt to start and change start to point to first */</font></i></font></b></pre>
<table width="740" cellspacing="0" height="84">
<tr>
<td width="502" height="147">
<pre><b><font face="Arial, Helvetica, sans-serif" size="4" color="#000000"> list[start].link = first;
start = first;
first = list[first].link;
}
else{ <i><font size="3" color="#CC0099"> </font></i></font></b></pre>
</td>
<td width="406" height="147"><img src="image/listmerge.gif" width="296" height="66"></td>
</tr>
</table>
<pre align="left"><b><font face="Arial, Helvetica, sans-serif" size="4" color="#000000"><i><font size="3" color="#CC0099"> /* key second list is lower,link this element
into the partially sorted list */</font></i>
list[start].link = second;
start = second;
second = list[second].link;
} <i><font size="3" color="#CC0099">
/*move remainder */</font></i>
if (first == -1)
list[start].link = second;
else
list[start].link = first;
return list[n].link;<i><font size="3" color="#CC0099"> /* start of the new list */</font></i>
}
</font></b></pre>
<table width="731" cellspacing="0" cellpadding="0">
<tr>
<td width="327"> </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-19.htm">上一页</a>
<a href="text7-21.htm">下一页</a> </b></font></td>
</tr>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -