求教哈希表查找不成功时的平均查找长度

zhangaiping1984 免费考研论坛/2007-10-11

原文内容来自免费考研论坛,请点击查看全文
http://bbs.freekaoyan.com/viewthread.php?tid=200828
例如以下哈希表:
散列函数为hash(f(x))=x MOD 11
地址:0 1 2 3 4 5 6 7 8 9 10
数据:33 1 13 12 34 38 27 22

查找不成功时的平均查找长度
各位高手,这个问题是这样的:

“在0~16的散列区中,对于关键字序列(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec)以及哈希函数H(x)=小于等于i/2的最大整数,这里i为关键字第一个字母在字母表中的序号。用线性探测开放定址法处理冲突,如何求出查找不成功的平均查找长度?”
---------------------------------
有没有知道确切答案的啊,帮帮忙啊
---------------------------------
不是有专门的公式可用吗?
---------------------------------
看严蔚敏的课本第261面中间:“分析长度为M的哈西表中添装有N个纪录时查找不成功的平均查找长度这个问题,相当于在这个表中再添加第N 1个纪录时所需比较的次数的期望值。”
比如:当你MOD11时,第N 1个数MOD后的值可能是0~10。当它是0时就要放在第一个位置,如果第一个位置有纪录,就要处理冲突,向后移到一个空位置,记住移动的位置数,就是在0位置上查找不成功的值,然后分别分析在1~10位置上的值,最后相加除以11。(注意:不是除表长M)
---------------------------------
jiushi !jiushi !duo kan shu !
---------------------------------
应该这样做吧:先构造哈希表
0 1   2 3  4 5 6   7 8 9  10  11   12 13 14 15 16
apr aug dec feb   jan mar may june july  sep  oct  nov
1 2   1 1   1 1   2 4  5  2  5   6
查找不成功:(5 4 3 2 1 9 8 7 6 5 4 3 2 1 1 1 1)/17=63/17
各位看看对不对
---------------------------------
我看的好多都是说 除以表长啊,到底是除仪以表长还是MOD后的值啊?
---------------------------------
当你MOD11时,第N 1个数MOD后的值可能是0~10。当它是0时就要放在第一个位置,如果第一个位置有纪录,就要处理冲突,在处理冲突时仍然要使用线性探测,这时就不是在0~10之间移动了啊,要在0~表长之间向后移到一个空位置,
---------------------------------
我看到有些学校的真题答案上,也是说除以表长的啊

相关话题/

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19