- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
青岛理工大学数据结构课件第九章查找.ppt
* 哈希查找分析 哈希查找过程仍是一个给定值与关键字进行比较的过程 评价哈希查找效率仍要用ASL 哈希查找过程与给定值进行比较的关键字的个数取决于: 哈希函数 处理冲突的方法 哈希表的填满因子?=表中填入的记录数/哈希表长度 * 例 已知一组关键字(19,14,23,1,68,20,84,27,55,11,10,79) 哈希函数为:H(key)=key MOD 13, 哈希表长为m=16, 设每个记录的查找概率相等 (1) 用线性探测再散列处理冲突,即Hi=(H(key)+di) MOD m H(79)=1 冲突,H1=(1+1)MOD16=2 冲突,H2=(1+2)MOD16=3 冲突,H3=(1+3)MOD16=4 冲突,H4=(1+4)MOD16=5 冲突,H5=(1+5)MOD16=6 冲突,H6=(1+6)MOD16=7 冲突,H7=(1+7)MOD16=8 冲突,H8=(1+8)MOD16=9 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ASL=(1*6+2+3*3+4+9)/12=2.5 14 1 68 27 55 19 20 84 79 23 11 10 H(19)=6 H(14)=1 H(23)=10 H(1)=1 冲突,H1=(1+1) MOD16=2 H(68)=3 H(20)=7 H(84)=6 冲突,H1=(6+1)MOD16=7 冲突,H2=(6+2)MOD16=8 H(27)=1 冲突,H1=(1+1)MOD16=2 冲突,H2=(1+2)MOD16=3 冲突,H3=(1+3)MOD16=4 H(11)=11 H(10)=10 冲突,H1=(10+1)MOD16=11 冲突,H2=(10+2)MOD16=12 * (2) 用链地址法处理冲突 0 1 2 3 4 5 6 7 8 9 10 11 12 14 ^ 1 27 79 68 55 19 84 20 23 10 11 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ASL=(1*6+2*4+3+4)/12=1.75 关键字(19,14,23,1,68,20,84,27,55,11,10,79) * 查找过程和造表过程一致。假设采用开放定址处理冲突,则查找过程为: 四、哈希表的查找 对于给定值 K, 计算哈希地址 i = H(K) 若 r[i] = NULL 则查找不成功 若 r[i].key = K 则查找成功 否则 “求下一地址 Hi” ,直至 r[Hi] = NULL (查找不成功) 或 r[Hi].key = K (查找成功) 为止。 * Status SearchHash (HashTable H, KeyType K, int p, int c) {// 在开放定址哈希表H中查找关键码为K的记录 } // SearchHash p = Hash(K); // 求得哈希地址 while ( H.elem[p].key != NULL !EQ(K, H.elem[p].key)) collision(p, ++c); // 求得下一探查地址 p if (EQ(K, H.elem[p].key)) return SUCCESS; // 查找成功,返回待查数据元素位置 p else return UNSUCCESS; // 查找不成功 * 1) 选用的哈希函数; 2) 选用的处理冲突的方法; 3) 哈希表饱和的程度,装载因子 α=n/m 值的大小(n—记录数,m—表的长度) 决定哈希表查找的ASL的因素: 哈希表查找的分析: 从查找过程得知,哈希表查找的平均查找长度实际上并不等于零。 * 线性探测再散列 链地址法 随机探测再散列 查找成功时平均查找长度有下列结果: * 从以上结果可见: 哈希表的平均查找长度是 ? 的函数,而不是 n 的函数。 这说明,用哈
文档评论(0)