问答题 设有一个散列表,要存放的数据有8个,采用除留余数法计算散列地址,并用二次散列法解决冲突,不过仅用H i =(H o +i 2 )%m计算下一个散列地址,m是表的长度,i=1,2,…,m-1。
问答题 如果要求平均探测两次就能找到新表项的散列地址,确定表长度m和散列函数。(设α是装填因子)
【正确答案】
【答案解析】选用U n ,有
又根据题意,n=8,有
问答题 设存放的数据为{25,40,11,97,59,30,87,73},依次计算并存放这些数据到散列表中,并计算存放后表的查找成功的平均查找长度。
【正确答案】
【答案解析】依次计算并存储的数据为{25,40,11,97,59,30,87,73}
Hash(25)=25%19=6;Hash(40)=40%19=2;Hash(11)=11%19=11;
Hash(97)=97%19=2,冲突,(2+1 2 )%19=3;
Hash(59)=59%19=2,冲突,(2+1 2 )%19=3,冲突,(2+2 2 )%19=6,冲突,
(2+3 2 )%19=11,冲突,(2+4 2 )%19=18;
Hash(30)=30%19=11,冲突,(11+1 2 )%19=12;
Hash(87)=87%19=11,冲突,(11+1 2 )%19=12,冲突,(11+2 2 )%19=15;
Hash(73)=73%19=16。
括号内是探测次数,如下图所示。由此计算查找成功的平均查找长度: