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

📄 ds9.4.2.htm

📁 这是清华大学所用的数据结构的电子版教材
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>数 据 结 构</title>
<meta name="Microsoft Theme" content="hounk 010">
</head>

<body background bgcolor="#000099" text="#CCCC99" link="#FF9900" vlink="#996600" alink="#FF3300">

<!--mstheme--><font face="宋体"><p:colorscheme
 colors="#0000FF,#FFFFFF,#000000,#FFCC66,#00FFFF,#3366FF,#FF0033,#FFFF00"/>
<p align="center"><span style="mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><b><font color="#FFFF00" size="6"><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">9.4.2  
</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 class="MsoNormal"><b><span style="mso-bidi-font-size: 10.0pt; font-family: 黑体"><font size="5" color="#FFFF00">一<span lang="EN-US">. 
直接定<o:p>
址法</span></font><span lang="EN-US"><font size="5" color="#FFFFFF"></o:p>
</font></span></span></b></p>
<p class="MsoNormal"><b><font size="5" color="#FFFFFF"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp; 
&nbsp;&nbsp;&nbsp;</span>Hash(key)=a</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:
&quot;Times New Roman&quot;">·</span><span lang="EN-US">key+b<span style="mso-spacerun:
yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(a</span><span style="font-family:宋体;mso-ascii-font-family:
&quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;">、</span><span lang="EN-US">b</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;
mso-hansi-font-family:&quot;Times New Roman&quot;">为常数</span><span lang="EN-US">)</span></font></b></p>
<p class="MsoNormal"><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;
mso-hansi-font-family:&quot;Times New Roman&quot;"><b><font size="5" color="#FFFFFF">&nbsp;&nbsp; 
即取关键码的某个线性函数值为哈希地址,这类函数是一一对应函数,不会产生冲突,但要求地址集合与关键码集合大小相同,因此,对于较大的关键码集合不适用。</font></b></span></p>
<p class="MsoNormal"><b><font size="5" color="#FFFFFF"><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;
mso-hansi-font-family:&quot;Times New Roman&quot;">【例</span><span lang="EN-US">9.7</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:
&quot;Times New Roman&quot;">】关键码集合为</span><span lang="EN-US">{100</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:
&quot;Times New Roman&quot;">,</span><span lang="EN-US">300</span><span style="font-family:
宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;">,</span><span lang="EN-US">500</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;
mso-hansi-font-family:&quot;Times New Roman&quot;">,</span><span lang="EN-US">700</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:
&quot;Times New Roman&quot;">,</span><span lang="EN-US">800</span><span style="font-family:
宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:&quot;Times New Roman&quot;">,</span><span lang="EN-US">900}</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;
mso-hansi-font-family:&quot;Times New Roman&quot;">,选取哈希函数为</span></font></b></p>
<b><font size="5" color="#FFFFFF"><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"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</span>Hash(key)=key/100</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>
<div align="center">
  <center><!--mstheme--></font>
  <table border="1" width="502" height="61" bordercolorlight="#3366CC" bordercolordark="#000000">
    <tr>
      <td width="36" height="30" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>0</b></font><!--mstheme--></font></td>
      <td width="56" height="30" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>1</b></font><!--mstheme--></font></td>
      <td width="43" height="30" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>2</b></font><!--mstheme--></font></td>
      <td width="41" height="30" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>3</b></font><!--mstheme--></font></td>
      <td width="48" height="30" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>4</b></font><!--mstheme--></font></td>
      <td width="44" height="30" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>5</b></font><!--mstheme--></font></td>
      <td width="47" height="30" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>6</b></font><!--mstheme--></font></td>
      <td width="55" height="30" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>7</b></font><!--mstheme--></font></td>
      <td width="48" height="30" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>8</b></font><!--mstheme--></font></td>
      <td width="49" height="30" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>9</b></font><!--mstheme--></font></td>
    </tr>
    <tr>
      <td width="36" height="31" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>100</b></font><!--mstheme--></font></td>
      <td width="56" height="31" valign="middle" align="center"><!--mstheme--><font face="宋体"><!--mstheme--></font></td>
      <td width="43" height="31" valign="middle" align="center"><!--mstheme--><font face="宋体"><!--mstheme--></font></td>
      <td width="41" height="31" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>300</b></font><!--mstheme--></font></td>
      <td width="48" height="31" valign="middle" align="center"><!--mstheme--><font face="宋体"><!--mstheme--></font></td>
      <td width="44" height="31" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>500</b></font><!--mstheme--></font></td>
      <td width="47" height="31" valign="middle" align="center"><!--mstheme--><font face="宋体"><!--mstheme--></font></td>
      <td width="55" height="31" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>700</b></font><!--mstheme--></font></td>
      <td width="48" height="31" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>800</b></font><!--mstheme--></font></td>
      <td width="49" height="31" valign="middle" align="center"><!--mstheme--><font face="宋体"><font size="5" color="#FFFFFF"><b>900</b></font><!--mstheme--></font></td>
    </tr>
  </table>
  <!--mstheme--><font face="宋体"></center>
</div>
<p class="MsoNormal"><b><span style="mso-bidi-font-size: 10.0pt; font-family: 黑体"><font size="5" color="#FFFF00">二<span lang="EN-US">. 
除留余数法</span></font><span lang="EN-US"><font color="#FFFFFF" size="5"><o:p>
</o:p>
</font></span></span></b></p>
<p class="MsoNormal"><b><font color="#FFFFFF" size="5"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</span>Hash(key)=key<span style="mso-spacerun: yes">&nbsp; </span>mod<span style="mso-spacerun: yes">&nbsp; 
</span>p<span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(p</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;
mso-hansi-font-family:&quot;Times New Roman&quot;">是一个整数</span><span lang="EN-US">)</span></font></b></p>
<font color="#FFFFFF" size="5"><b><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">&nbsp;&nbsp; 
即取关键码除以</span><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">p</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><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">p</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><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">m</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><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">p</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><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">m</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><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">m</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><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">m</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><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">p</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><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">20</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></b></font>
<p class="MsoNormal"><b><span style="mso-bidi-font-size: 10.0pt; font-family: 黑体"><font size="5" color="#FFFF00">三</font></span><span lang="EN-US" style="mso-bidi-font-size: 10.0pt; font-family: 黑体"><font size="5" color="#FFFF00">. 
数字分析法</font><font color="#FFFFFF" size="5"><o:p>
</o:p>
</font></span></b></p>
<p class="MsoNormal"><font color="#FFFFFF" size="5"><b><span style="mso-spacerun: yes" lang="EN-US">&nbsp;&nbsp; 
</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:
&quot;Times New Roman&quot;">设关键码集合中,每个关键码均由</span><span lang="EN-US">m</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:
&quot;Times New Roman&quot;">位组成,每位上可能有</span><span lang="EN-US">r</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:
&quot;Times New Roman&quot;">种不同的符号。</span></b></font></p>
<p class="MsoNormal"><b><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;
mso-hansi-font-family:&quot;Times New Roman&quot;"><font size="5" color="#FFFF00">【例</font></span><font size="5" color="#FFFF00"><span lang="EN-US">9.8</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:
&quot;Times New Roman&quot;">】</span></font><font color="#FFFFFF" size="5"><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:
&quot;Times New Roman&quot;">若关键码是</span><span lang="EN-US">4</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:
&quot;Times New Roman&quot;">位十进制数,则每位上可能有十个不同的数符</span><span lang="EN-US">0</span><span style="font-family:宋体;mso-ascii-font-family:&quot;Times New Roman&quot;;mso-hansi-font-family:

⌨️ 快捷键说明

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