数据结构 邓欣-ch9-查找b.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通常,每个同义词子表都很短,设有n 个关键码通过某一个哈希函数,存放到哈希表中的 m 个桶中。那么每一个桶中的同义词子表的平均长度为 n / m。这样,以有哪些信誉好的足球投注网站平均长度为 n / m 的同义词子表代替了有哪些信誉好的足球投注网站长度为 n 的顺序表,有哪些信誉好的足球投注网站速度快得多。 再哈希法 公共溢出区 其他问题 在利用哈希表进行各种处理之前,必须首先将哈希表中原有的内容清掉。只需将表中所有表项的info域置为Empty即可。 哈希表存放的表项不应有重复的关键码。在插入新表项时,如果发现表中已经有关键码相同的表项,则不再插入。 一般不能真正删除表中已有表项。删除表项会影响其它表项的有哪些信誉好的足球投注网站。若把关键码为Broad的表项真正删除,把它所在位置的info域置为Empty,以后在有哪些信誉好的足球投注网站关键码为Blum和Alton的表项时就查不下去,从而会错误地判断表中没有关键码为Blum和Alton的表项。 若想删除一个表项,只能给它做一个删除标记deleted,进行逻辑删除,不能把它真正删去。 逻辑删除的副作用是:在执行多次删除后,表面上看起来哈希表很满,实际上有许多位置没有利用。 哈希表分析 哈希表是一种直接计算记录存放地址的方法,它在关键码与存储位置之间直接建立了映象。 当选择的哈希函数能够得到均匀的地址分布时,在有哪些信誉好的足球投注网站过程中可以不做多次探查。 若设 ? 是哈希表的装填因子: 用地址分布均匀的哈希函数Hash( )计算地址。 Sn 是有哪些信誉好的足球投注网站一个随机选择的关键码 xi (1 ? i ? n) 所需的关键码比较次数的期望值 Un 是在长度为 m 的哈希表中 n 个地址已有记录的情况下,装入第 n+1 项所需执行的关键码比较次数期望值。 前者是有哪些信誉好的足球投注网站成功时的平均有哪些信誉好的足球投注网站长度,后者是有哪些信誉好的足球投注网站不成功时的平均有哪些信誉好的足球投注网站长度。 算法分析 当装填因子 ? 较高时,选择的哈希函数不同,哈希表的有哪些信誉好的足球投注网站性能差别很大。 对哈希表技术进行的实验评估表明,它具有很好的平均性能,优于一些传统的技术,如平衡树。 但哈希表在最坏情况下性能很不好。如果对一 个有 n 个关键码的哈希表执行一次有哪些信誉好的足球投注网站或插入操作,最坏情况下需要 O(n) 的时间。 用不同的方法处理冲突时哈希表的平均有哪些信誉好的足球投注网站长度如表所示。 各种方法处理冲突的平均有哪些信誉好的足球投注网站长度 哈希表的装填因子 ? 表明了表中的装满程度。越大,说明表越满,再插入新元素时发生冲突的可能性就越大。 哈希表的有哪些信誉好的足球投注网站性能,即平均有哪些信誉好的足球投注网站长度依赖于哈希表的装填因子,不直接依赖于 n 或 m。 不论表的长度有多大,我们总能选择一个合适的装填因子,以把平均有哪些信誉好的足球投注网站长度限制在一定范围内。 复杂度O(1) 理论分析结果 实际测试结果 完美的哈希函数 总结 哈希表 查找 作业 已知一关键字序列为{87,25,310,08,132,68,95,187,123,70,63,47}。设哈希函数为H(key) = key %13,采用链地址法处理冲突。画出最后存储的哈希表,计算该表查找成功时的平均查找长度。 静态查找表 动态查找表 哈希表 (Hash) 问题引入 前面的查找方法是基于比较的 数组存储可以实现用下标立即取得目标数据 现实问题中,经常遇到按给定的值进行快速查找(查询)的事例。 例如,使用文件名查找活动文件,程序语言的关键字查找。 按内容查找,不用比较,立即取得所查找记录。 需要考虑 记录存放位置和用以标识它的关键码 之间的对应关系,从而选择适当的数据结构,很方便地根据记录的关键码检索到对应记录的信息。 9.3.1 哈希表 (Hash) Hash表又称散列表。 Hash函数 为记录存放位置和数据项(关键码)凑一个对应关系。 即:记录的存储位置loc = h(key) 实现立即查找 哈希(Hash)表 如:hash函数loc=h(key) = key mod 10, 记录集合为 No. Name Class … Zhang c1 Liu c2 Wang c1 Li c3 … 则Hash表为 10 Li c3 12 Liu c2 4 Wang c1 5 Zhang c3 0 1 2 3 4 5 6 7 loc key 9.3.2 哈希函数的构造方法 直接定址法 数字分析法 平方取中法 折叠法 除留余数法 随机数法 构造哈希函数时的几点要求: 哈希函数的定义域必须包括需要存储的全部关 键码,如果哈希表允许有 m 个地址时, 其值域 必须在 0 到 m-1 之间。 哈希函数计算出来的地址应能均匀分布在整个 地址空间中:若 key 是从关键码集合中随机抽 取的一个关键码,哈希函数应能以同等概率取 0 到 m-1 中的每一个值。 哈希函

文档评论(0)

精品文库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档