- 1、本文档共103页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈希表的查找过程和造表过程一致。 对于给定值 K, 计算哈希地址 i = H(K) 若 r[i] = NULL 则查找不成功 若 r[i].key = K 则查找成功 否则 “求下一地址 Hi” ,直至 r[Hi] = NULL (查找不成功) 或 r[Hi].key = K (查找成功) 为止。 采用开放定址处理冲突,则查找过程为: 四、哈希表的查找 决定哈希表查找ASL的因素: (1) 选用的哈希函数; (2) 选用的处理冲突的方法; (3) 哈希表饱和的程度,即装载因子 α=n/m 值的大小(n—记录数,m—表的长度) 从查找过程得知,哈希表查找的平均查找长度实际上并不等于零。 五、哈希法性能分析 一般情况下,可以认为选用的哈希函数是“均匀”的,则在讨论ASL时,可以不考虑它的因素。 因此,哈希表的ASL是处理冲突方法和装载因子的函数。 例如:前述例子 线性探测处理冲突时, ASL = 链地址法处理冲突时, ASL = 22/9 13/9 平方探测处理冲突时, ASL = 15/9 可以证明:查找成功时ASL有下列结果: 线性探测 链地址法 随机探测 从以上结果可见: 哈希表的平均查找长度是 ? 的函数,而不是 n 的函数。 这说明,用哈希表构造查找表时,可以选择一个适当的装填因子 ? ,使得平均查找长度限定在某个范围内。 —— 这是哈希表所特有的特点。 在地址空间为0~13的散列区中,对以下关键字序列:{Jan, Feb, Mar, Apr, May, June, July, Aug, Sep, Oct, Nov, Dec},设哈希函数为 H(x)= i/2 ,其中i为关键字中第一个字母在字母表中的序号。 例如: 要求构造 用线性探测开放定址法处理冲突的哈希表; 用链地址法处理冲突构造两个哈希表; 分别求两个哈希表在等概率情况下查找成功的ASLss 数字化处理: Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec 10, 6, 13, 1, 13, 10, 10, 1, 19, 15, 14, 4 ASLss=(1+2+1+1+1+1+2+4+5+2+5+6)/12 =31/12 采用线性探测处理冲突: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 1 1 1 2 4 2 5 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 1 5 6 Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec 10, 6, 13, 1, 13, 10, 10, 1, 19, 15, 14, 4 采用链地址法处理冲突: H(x)= i/2 ASLss=(1×7+2×4+3×1)/12 =18/12 Jan Jun Jul ∧ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Mar May ∧ Oct Nov ∧ Sep ∧ ∧ Apr Aug ∧ Dec ∧ Feb ∧ ∧ ∧ ∧ ∧ ∧ ∧ 作业 画出长度为10的有序表进行折半查找的判定树,求等概率时查找成功的平均查找长度; 算法设计:从大至小输出给定二叉排序树中所有关键字不小于a的数据元素; 作业 3. 设哈希表地址为HT[0..10],关键字的集合为key={24,38,23,70,56,53,43,64,36},哈希函数使用“除留余数法”(选取p=11),冲突解决分别采用“线性探测”和“链地址”法, a. 试画出两种情况下的哈希表, b. 求出等概率查找时的查找成功的ASLss。 2011 by Fang, Can * 以学生信息集为例 在B-树中进行查找时,其查找时间 主要花费在搜索结点(访问外存)上, 即主要取决于B-树的深度。 (5)查找性能的分析 问:含 N 个关键字的 m 阶 B-树可能达到的最大深度 H 为多少? 第 2 层 2 个 先推导每一层所含最少结点数: 第 1 层 1 个 第 H+1 层 2?(?m/2?) H-1 个 第 4 层 2?(?m/2?)2 个 第 3 层 2??m/2? 个 反过来问: 深度为H的B-树中,
文档评论(0)