应用题:哈希查找
时间: 1ms 内存:128M
描述:
设有一组关键字{9,1,23,14,55,20,84,27},采用哈希函数:H(key)=key mod 7 ,表长为10,输出用链地址法处理冲突构造得的哈希表,并计算在等概率下成功查找的平均查找长度。将哈希的各个链地址用一个数组 line_str[ ]保存,其中line_str[0]存储0以及哈希地址为0的关键字,line_str[1]存储1以及哈希地址为1的关键字。如果某个地址没有关键字,则只存储地址,如line_str[3] = "3"; 最后,line_str[8] = "ASL=..." 存储ASL的值。注意字符串中的每个数据用空格分开。
注意:该题目不用编程,只需要完善下面的8行的“……”部分,然后将这8行提交。
注意:应用题不进行现场评判,提交代码后自动显示“AC”。建议你确保答案正确后再提交。
line_str[0] = "0 84 14";line_str[1] = "1 ......";line_str[2] = "2 ....";line_str[3] = "3";line_str[4] = "4 ......";line_str[5] = "5......";line_str[6] = "6......";line_str[7] = "ASL=......";
输入:
输出:
示例输入:
示例输出:
提示:
参考答案(内存最优[0]):
#include<iostream>
using namespace std;
int main()
{
cout<<"0 84 14"<<endl;
cout<<"1"<<endl;
cout<<"2 9 23"<<endl;
cout<<"3"<<endl;
cout<<"4"<<endl;
cout<<"5"<<endl;
cout<<"6 55 20 27"<<endl;
cout<<"7"<<endl;
cout<<"ASL=4";
}
参考答案(时间最优[0]):
#include <iostream>
using namespace std;
int main()
{
string line_str[10];
int num = 8;
int i;
line_str[0] = "0 84 14";
line_str[1] = "1 1";
line_str[2] = "2 23 9";
line_str[3] = "3";
line_str[4] = "4";
line_str[5] = "5";
line_str[6] = "6 27 20 55";
line_str[7] = "ASL=1.625";
for(i=0; i<num; i++)
cout<<line_str[i]<<endl;
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。