哈希表是什么课件.ppt
《哈希表是什么课件.ppt》由会员分享,可在线阅读,更多相关《哈希表是什么课件.ppt(27页珍藏版)》请在三一办公上搜索。
1、一、哈希表是什么?,二、哈希函数的构造方法,三、处理冲突的方法,四、哈希表的查找,9.3 哈 希 表,以上两节讨论的表示查找表的各种结构的共同特点:记录在表中的位置和它的关键字之间不存在一个确定的关系,,一、哈希表是什么?,查找的过程为给定值依次和关键字集合中各个关键字进行比较,,查找的效率取决于和给定值进行比较的关键字个数。,只有一个办法:预先知道所查关键字在表中的位置,,对于频繁使用的查找表,希望 ASL=0。,即要求:记录在表中位置和其关键字之间存在一种确定的关系。,若以下标为000 999 的顺序表表示之。,例如:为每年招收的 1000 名新生建立一张查找表,其关键字为学号,其值的范围
2、为 xx000 xx999(前两位为年份)。,则查找过程可以简单进行:取给定值(学号)的后三位,不需要经过比较便可直接从顺序表中找到待查关键字。,因此在一般情况下,需在关键字与记录在表中的存储位置之间建立一个函数关系,以 f(key)作为关键字为 key 的记录在表中的位置,通常称这个函数 f(key)为哈希函数。,Zhao,Qian,Sun,Li,Wu,Chen,Han,Ye,Dei,例如:对于如下 9 个关键字,设 哈希函数 f(key)=(Ord(第一个字母)-Ord(A)+1)/2,Chen,Zhao,Qian,Sun,Li,Wu,Han,Ye,Dei,问题:若添加关键字 Zhou,怎
3、么办?,能否找到另一个哈希函数?,1)哈希函数是一个映象,即:将关键字的集合映射到某个地址集合上,它的设置很灵活,只要这个地址集合的 大小不超出允许范围即可;,从这个例子可见:,2)由于哈希函数是一个压缩映象,因此,在一般情况下,很容易产生“冲突”现象,即:key1 key2,而 f(key1)=f(key2)。,3)很难找到一个不产生冲突的哈希函数。一般情况下,只能选择恰当的哈希函数,使冲突尽可能少地产生。,因此,在构造这种特殊的“查找表”时,除了需要选择一个“好”(尽可能少产生冲突)的哈希函数之外;还需要找到一种“处理冲突”的方法。,哈希表的定义:,根据设定的哈希函数 H(key)和所选中
4、的处理冲突的方法,将一组关键字映象到一个有限的、地址连续的地址集(区间)上,并以关键字在地址集中的“象”作为相应记录在表中的存储位置,如此构造所得的查找表称之为“哈希表”或“散列表”。这一映象过程称为“哈希造表”或“散列”。所得存储地址称为“哈希地址”或“散列地址”。,二、构造哈希函数的方法,对数字的关键字可有下列构造方法:,若是非数字关键字,则需先对其进行数字化处理。,1.直接定址法,3.平方取中法,5.除留余数法,4.折叠法,6.随机数法,2.数字分析法,哈希函数为关键字的线性函数 H(key)=key 或者 H(key)=a key+b,1.直接定址法,此法仅适合于:地址集合的大小=关键
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈希表 是什么 课件
链接地址:https://www.31ppt.com/p-3677098.html