淘先锋技术网

首页 1 2 3 4 5 6 7

先建好表,然后可以算出每个位置不成功时的比较次数之和,再除以表空间个数!

例如:散列函数为hash(x)=x MOD 13,用线性探测,建立了哈希表之后,如何求查找不成功时的平均查找长度!?

查找成功时的平均查找长度:ASL=(1+3+1+2+2+1+1+9+1+1)/10 =2.2

查找不成功时的平均查找长度:ASL=(9+8+7+6+5+4+3+2+1+1+2+1+10)/13=4.54

说明:

第n个位置不成功时的比较次数为,第n个位置到第1个没有数据位置的距离。至少要查询多少次才能确认没有这个值。

(1)查询hash(x)=0,至少要查询9次遇到表值为空的时候,才能确认查询失败。

(2)查询hash(x)=1,至少要查询8次遇到表值为空的时候,才能确认查询失败。

(3)查询hash(x)=2,至少要查询7次遇到表值为空的时候,才能确认查询失败。

(4)查询hash(x)=3,至少要查询6次遇到表值为空的时候,才能确认查询失败。

(5)查询hash(x)=4,至少要查询5次遇到表值为空的时候,才能确认查询失败。

(6)查询hash(x)=5,至少要查询4次遇到表值为空的时候,才能确认查询失败。

(7)查询hash(x)=6,至少要查询3次遇到表值为空的时候,才能确认查询失败。

(8)查询hash(x)=7,至少要查询2次遇到表值为空的时候,才能确认查询失败。

(9)查询hash(x)=8,至少要查询1次遇到表值为空的时候,才能确认查询失败。

(10)查询hash(x)=9,至少要查询1次遇到表值为空的时候,才能确认查询失败。

(11)查询hash(x)=10,至少要查询2次遇到表值为空的时候,才能确认查询失败。

(12)查询hash(x)=11,至少要查询1次遇到表值为空的时候,才能确认查询失败。

(13)查询hash(x)=12,至少要查询10次遇到表值为空(循环查询顺序表)的时候,才能确认查询失败。