ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:50.50KB ,
资源ID:1224747    下载:注册后免费下载
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenkunet.com/d-1224747.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中华女子学院岗位设置管理实施办法(试行) .doc)为本站会员(瓦拉西瓦)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(发送邮件至13560552955@163.com或直接QQ联系客服),我们立即给予删除!

中华女子学院岗位设置管理实施办法(试行) .doc

1、其地址,以这种方式个构成 的表即为散列表散列表(又称哈希表哈希表或杂凑表杂凑表) 函数 H散列函数散列函数或哈希(哈希(Hash)函数)函数; H(K)散列地址散列地址; 若 K1K2,但 H(K1)=H(K2) 这时我们称发生了冲突冲突。 K1和 K2称为 同义词同义词。 1. 哈希表的概念哈希表的概念 执行查询算法执行查询算法数据结构数据结构 (Java 语言版语言版 ) 置一度设个长为m 的表 T ,用一函据集合中个数将数n的个记录关 字可能唯一地成键尽转换0m-1 范的围内数值, 即于集合中任意对 的字记录关键Ki ,有: 0H(Ki) m-1(0in) 2. 哈希表的基本思想哈希表的

2、基本思想 9.4 哈希表查找技术哈希表查找技术认识哈希表认识哈希表 执行查询算法执行查询算法数据结构数据结构 (Java 语言版语言版 ) 虽然哈希表是一种有效的搜索技术,但是它还有些缺点。两个不同的关键字,由 于哈希函数值相同,因而被映射到同一表位置上。该现象称为冲突(Collision) 或 碰撞。发生冲突的两个关键字称为该哈希函数的同义词(Synonym) 。 假设散列函数是: h(k)=key%4 对于键 3 、 5 、 8 和 10 使用该函数,这些键分散开了,如 图 A 所示 . 但在图 B 中,键 4 和 8 就散列到相同的位置,因此导致了冲突。 3 5 8 10 0 1 2 3

3、 关键字关键字散列表散列表 图 A 用哈希函数 h 将关键字映射到哈希表中 ( 无冲突的情况 ) 3 4 8 10 0 1 2 3 关键字关键字散列表散列表 图 B 用哈希函数 h 将关键字映射到哈希表中 ( 发生冲突的情况 ) 因此,构造哈希函数和建立解决冲突 的方法是建立哈希表的两大任务。 9.4 哈希表查找技术哈希表查找技术认识哈希表认识哈希表 3. 解决哈希冲突解决哈希冲突 执行查询算法执行查询算法数据结构数据结构 (Java 语言版语言版 ) 好的哈希函数的选择有两条标准: (1) 简单并且能够快速计算 (2) 能够在址空间中获取键的均匀人分布 先通求字的平方大相近的差,然后根据表度

4、取过关键值扩数别长中间的 几位数作哈希函。又因一乘的中几位和乘的每一位为数值为个积间数数 都相,所以由此生的散列地址均。关产较为匀 【例】将一组关键字 (0100 , 0110 , 1010 , 1001 , 0111) 平方后得: (0010000 , 0012100 , 1020100 , 1002001 , 0012321) 若取表长为 1000 ,则可取中间的三位数作为散列地址集: (100 , 121 , 201 , 020 , 123) 。 int Hash(int key) / 假设 key 是 4 位整数 key*=key ; key/=100 ; / 先求平方值,后去掉末尾的

5、两位数 return key 1000 ; / 取中间三位数作为散列地址返回 9.4 哈希表查找技术哈希表查找技术构造哈希函数方法构造哈希函数方法 1. 平方取中法平方取中法 执行查询算法执行查询算法数据结构数据结构 (Java 语言版语言版 ) 假设散列表的地址空间为 0 m-1 ,使关键字 K 除以 m 所得 的余数作为散列地址。 散列函数为: H ( K ) =K % m 该方法的关键是选取 m 。选取的 m 应使得散列函数值尽可能与关键字 的各位相关。 m 最好为素数。 【例】有一组关键字 (36475611 , 47566933 , 75669353 , 34547579 , 464

6、83499) , 哈希表的大小是 43 ,则上述键的地址是: 36475611%43=1 47566933%43=32 75669353%43=17 34547579%43=3 46483499%43=26 9.4 哈希表查找技术哈希表查找技术构造哈希函数构造哈希函数 2. 除余法除余法 执行查询算法执行查询算法数据结构数据结构 (Java 语言版语言版 ) 根据哈希表字分成可能分成若干段,然后几段的相加长将关键尽将这值 ,最高位的位舍去,所得果即其并将进结为哈希地址。相加有方时两种 法,一是种顺折,即把每一段中的各位相加,之值对齐称为移位法;另 一是种对折,像折一,把原字中的字按照分的中界你

7、纸条样来关键数划 向中段折,然后求和,之间叠称为折叠法。 【例】有一组关键字 (4766934 , 5656975 , 4685637 , 3547807 , 7569664) ,将这 些数 拆成 2 位、 4 位和 1 位数,然后再把它们相加,如图 11.9 所示: 4766934 5656975 4685637 3547807 关键字关键字 7569664 47+6693+4 56+5697+5 46+8563+7 35+4780+7 拆分键拆分键 75+6966+4 6744 5758 8616 4822 结果结果 7045 图 11.9 用折叠移位法构造哈希函数示意图 9.4 哈希表查

8、找技术哈希表查找技术构造哈希函数构造哈希函数 3. 折叠移位法折叠移位法 执行查询算法执行查询算法数据结构数据结构 (Java 语言版语言版 ) 9.4 哈希表查找技术哈希表查找技术解决哈希冲突方法解决哈希冲突方法 1. 开放地址法开放地址法 用开放定址法解决冲突的做法是用开放定址法解决冲突的做法是:当冲突发生时 ,按照某种方法探测表中的其他存储单元,直到找到空位 置为止。开放地址法很多 , 本课主要介绍线性探测法。 执行查询算法执行查询算法数据结构数据结构 (Java 语言版语言版 ) 散列表将T0m-1 看成是一循向量,若初始探的地址个环查为d( 即 h(key)=d) ,最的探序列:则长

9、查为 d , d+l , d+2 , m-1 , 0 , 1 , d-1 即:探地址查时从d始,首先探开查Td ,然后依次探查Td+1 , ,直到 Tm-1 , 此后又循到环T0 , T1 ,直到探到查Td- 1止。为 探程止于三情:查过终种况 若前探的元空,表示找失(若是入当查单为则查败插则将 key入其写 中); 若前探的元中含有当查单key ,找成功,但于入意味着失则查对插败 ; 若探到查Td-1仍未空元也未找到时发现单key ,无是找是则论查还 入均意味着失插败( 此表时满) 。 哈希表查找技术哈希表查找技术解决哈希冲突方法解决哈希冲突方法 2. 开放地址法之线性探测法开放地址法之线性

10、探测法 执行查询算法执行查询算法数据结构数据结构 (Java 语言版语言版 ) 散列表将T0m-1 看成是一循向量,若初始探的地址个环查为d( 即 h(key)=d) ,最的探序列:则长查为 d , d+l , d+2 , m-1 , 0 , 1 , d-1 即:探地址查时从d始,首先探开查Td ,然后依次探查Td+1 , ,直到 Tm-1 , 此后又循到环T0 , T1 ,直到探到查Td- 1止。为 探程止于三情:查过终种况 若前探的元空,表示找失(若是入当查单为则查败插则将 key入其写 中); 若前探的元中含有当查单key ,找成功,但于入意味着失则查对插败 ; 若探到查Td-1仍未空元

11、也未找到时发现单key ,无是找是则论查还 入均意味着失插败( 此表时满) 。 哈希表查找技术哈希表查找技术解决哈希冲突方法解决哈希冲突方法 2. 开放地址法之线性探测法开放地址法之线性探测法 执行查询算法执行查询算法数据结构数据结构 (Java 语言版语言版 ) 例例:散列函数 H(K)=K%7 ,采用线性探测法将下列数据依次插入下表中: 23 , 34 , 56 , 12 , 8 , 14 , 35 , 25 0123475869 23 1 34 1 56 1 12 1 8 1 14 4 35 5 25 4 假设查找每个元素的概率相同,则 : 查找成功的平均查找长度 (ASL)= 所有数据

12、放置成功的次数 / 数据的个数 ASL=(1+1+1+4+5+1+1+4)/8=18/8 9.4 哈希表查找技术哈希表查找技术解决哈希冲突方法解决哈希冲突方法 执行查询算法执行查询算法数据结构数据结构 (Java 语言版语言版 ) 用此法来构造散列表会产生非同义词对同一地址的争夺,称之为堆积堆积。 0123475869 23 1 34 1 56 1 12 1 8 1 14 4 35 5 25 4 哈希表查找技术哈希表查找技术解决哈希冲突方法解决哈希冲突方法 执行查询算法执行查询算法数据结构数据结构 (Java 语言版语言版 ) 9.4 哈希表查找技术哈希表查找技术解决哈希冲突方法解决哈希冲突方法 2. 链表法链表法 链表法解决冲突的做法是:链表法解决冲突的做法是:将所有关键字为同义 词的结点链接在同一个单链表中。若选定的哈希表长度为 m ,则可将哈希表定义为一个由 m 个头指针组成的指针数 组 T0m-1 。凡是散列地址为 i 的结点,均插入到以 Ti 为头指针的单链表中。 T 中各分量的初值均应为空指针。 在链表法中,装填因子 可以大于 1 ,但一般均取 1 。 散列表的装填因子定义为: = 填入表中的元素个数 / 散列表 的长度 是散列表装满程度的标志因子。由于表长是定值, 与“填入 表中的元素个数”成正比,所以, 越大,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报