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

📄 ds10.2.2.htm

📁 这是清华大学所用的数据结构的电子版教材
💻 HTM
📖 第 1 页 / 共 2 页
字号:
</span>L.r[0]=L.r[i]; </span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-hansi-font-family: Times New Roman"><span style="mso-spacerun: yes; font-family: 宋体; mso-hansi-font-family: Times New Roman">&nbsp;</span>/* 
保存待插入元素 */</span><span lang="EN-US" style="font-family:宋体;
mso-hansi-font-family:&quot;Times New Roman&quot;"><o:p>
</o:p>
</span></b></span></font></p>
<p class="MsoNormal" style="text-indent: 21.25pt; margin-left: 21.25pt; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span style="font-family: 宋体; mso-hansi-font-family: Times New Roman"><b><span lang="EN-US">low=1;high=i-1;<span style="mso-spacerun: yes; font-family: 宋体; mso-hansi-font-family: Times New Roman">&nbsp;&nbsp;&nbsp; 
</span></span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-hansi-font-family: Times New Roman">/* 
设置初始区间 */</span><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:
&quot;Times New Roman&quot;"><o:p>
</o:p>
</span></b></span></font></p>
<p class="MsoNormal" style="text-indent: 21.25pt; margin-left: 21.25pt; margin-top: 0; margin-bottom: 0"><span style="font-family: 宋体; mso-hansi-font-family: Times New Roman"><b><font color="#FFFFFF" size="5"><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;">while(low&lt;=high)<span style="mso-spacerun: yes; font-family: 宋体; mso-hansi-font-family: Times New Roman">&nbsp;&nbsp; 
</span></span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-hansi-font-family: Times New Roman">/* 
</span></font><span lang="EN-US" style="mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-hansi-font-family: Times New Roman"><font color="#FFFFFF" size="4">该循环语句完成确定插入位置 
*/</font></span><font color="#FFFFFF" size="5"><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:
&quot;Times New Roman&quot;"><o:p>
</o:p>
</span></font></b></span></p>
<p class="MsoNormal" style="text-indent: 21.25pt; margin-left: 21.25pt; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;"><b>{<span style="mso-tab-count: 1; font-family: 宋体; mso-hansi-font-family: Times New Roman">&nbsp;&nbsp; 
</span>mid=(low+high)/2;<o:p>
</o:p>
</b></span></font></p>
<p class="MsoNormal" style="text-indent: 21.25pt; margin-left: 42.5pt; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;"><b>if(L.r[0].key&gt;L.r[mid].key)<o:p>
</o:p>
</b></span></font></p>
<p class="MsoNormal" style="text-indent: 21.25pt; margin-left: 63.75pt; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span style="font-family: 宋体; mso-hansi-font-family: Times New Roman"><b><span lang="EN-US">low=mid+1;<span style="mso-spacerun: yes; font-family: 宋体; mso-hansi-font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</span></span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-hansi-font-family: Times New Roman">/* 
插入位置在高半区中 */</span><span lang="EN-US" style="font-family:
宋体;mso-hansi-font-family:&quot;Times New Roman&quot;"><o:p>
</o:p>
</span></b></span></font></p>
<p class="MsoNormal" style="text-indent: 21.25pt; margin-left: 42.5pt; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span style="font-family: 宋体; mso-hansi-font-family: Times New Roman"><b><span lang="EN-US">else<span style="mso-spacerun: yes; font-family: 宋体; mso-hansi-font-family: Times New Roman">&nbsp; 
</span>high=mid-1;<span style="mso-spacerun: yes; font-family: 宋体; mso-hansi-font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</span></span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-hansi-font-family: Times New Roman">/* 
插入位置在低半区中 */</span><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;"><o:p>
</o:p>
</span></b></span></font></p>
<p class="MsoNormal" style="text-indent: 21.25pt; margin-left: 21.25pt; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;"><b>}/* 
while */<o:p>
</o:p>
</b></span></font></p>
<p class="MsoNormal" style="text-indent: 21.25pt; margin-left: 21.25pt; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span style="font-family: 宋体; mso-hansi-font-family: Times New Roman"><b><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;">for(j=i-1;j&gt;=high+1;--j)<span style="mso-spacerun: yes; font-family: 宋体; mso-hansi-font-family: Times New Roman">&nbsp;&nbsp; 
</span></span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-hansi-font-family: Times New Roman">/* 
high+1为插入位置 */</span><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;"><o:p>
</o:p>
</span></b></span></font></p>
<p class="MsoNormal" style="text-indent: 21.25pt; margin-left: 42.5pt; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span style="font-family: 宋体; mso-hansi-font-family: Times New Roman"><b><span lang="EN-US">L.r[j+1]=L.r[j]; 
</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-hansi-font-family: Times New Roman">/* 
后移元素,留出插入空位 */</span><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;"><o:p>
</o:p>
</span></b></span></font></p>
<p class="MsoNormal" style="text-indent: 21.25pt; margin-left: 21.25pt; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span style="font-family: 宋体; mso-hansi-font-family: Times New Roman"><b><span lang="EN-US">L.r[high+1]=L.r[0]; 
</span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-hansi-font-family: Times New Roman">/* 
将元素插入 */</span><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;"><o:p>
</o:p>
</span></b></span></font></p>
<p class="MsoNormal" style="text-indent: 21.25pt; margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;"><b>}/* 
for */<o:p>
</o:p>
</b></span></font></p>
<p class="MsoNormal" style="margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:
&quot;Times New Roman&quot;"><b>}/* InsertSort */</b></span></font></p>
<p class="MsoNormal" style="margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><span lang="EN-US" style="font-family:宋体;mso-hansi-font-family:
&quot;Times New Roman&quot;"><b><o:p>
</o:p>
</b></span></font></p>
<p class="MsoNormal" style="margin-top: 0; margin-bottom: 0"><span style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;"><b><font size="5" color="#FFFF00">【时间效率】</font></b></span></p>
<p class="MsoNormal" style="margin-top: 0; margin-bottom: 0"><span style="font-family:宋体;mso-hansi-font-family:&quot;Times New Roman&quot;"><b><font color="#FFFFFF" size="5"><span lang="EN-US"><o:p>
</o:p>
</span></font></b></span></p>
<p class="MsoNormal" style="margin-top: 0; margin-bottom: 0"><font color="#FFFFFF" size="5"><b><span lang="EN-US" style="font-family: 宋体; mso-hansi-font-family: Times New Roman"><o:p>
</o:p>
</span></b></font><span style="mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA" lang="EN-US"><b><font size="5" color="#FFFFFF">&nbsp;&nbsp; 
确定插入位置所进行的折半查找,关键码的比较次数至多为<img border="0" src="ds10.23.gif" align="middle" width="66" height="24">次,移动记录的次数和直接插入排序相同,故时间复杂度仍为<span lang="EN-US" style="mso-bidi-font-size: 10.0pt; font-family: Times New Roman; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman">O(n<sup>2</sup>)</span><span style="mso-bidi-font-size: 10.0pt; font-family: 宋体; mso-ascii-font-family: Times New Roman; mso-hansi-font-family: Times New Roman; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">。是一个稳定的排序方法。</span></font></b></span></p>
<p align="left"> </p>
<p align="center"><b><font size="5"><a href="ds10.2.htm"><font color="#FFFF00">返回</font></a></font></b></p>
<!--mstheme--></font>

</body>

</html>

⌨️ 快捷键说明

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