您的位置:首页 > 其它

求闭散列表的平均查找长度

2012-05-12 18:41 363 查看

题目描述:

创建一个整型数组用来存放闭散列表,散列函数为除留余数法如下:hash(x) = x % 11,散列数组中有8个元素,要求从键盘读入这8个散列元素,采用闭散列即开放定址法的线性探查法处理冲突,计算该闭散列表的平均查找长度。

输入样例:

7 6 92 77 3 15 28 45


输出样例:

1.375


输入描述:

输入8个整型散列元素,以空格隔开

输出描述:

输出该比散列表的平均查找长度,占一行

#include <iostream>

using namespace std;

int f(int a[])

{

int n,k=1;

cin>>n;

int number=n%11;

if(a[number]==-1)

{

a[number]=n;

return 1;

}

number=(number+1)%11;

while(a[number]!=-1)

{

if(a[number]!=n)

{

number=(number+1)%11;

k++;

}

else

{

a[number]=n;

return k;

}

}

if(a[number]==-1)

{

a[number]=n;

k++;

return k;

}

return 0;

}

int main()

{

int a[100],i;

float count=0;

for(i=0;i<11;i++)

{

a[i]=-1;

}

for(i=0;i<8;i++)

{

count=count+f(a);

}

cout<<count/8;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: