应用题:哈希查找

时间: 1ms        内存:128M

描述:

设有一组关键字{9,1,23,14,55,20,84,27},采用哈希函数:Hkey=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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。