输入(从文件中读取):
Data.txt
每行:编号,权重
(1)建立数组,从 “Data.txt” 中读取编号和权重;
(2)从键盘读入 待查找 的权重数值,以除留余数法为哈希函数,线性探测法解决冲突建立哈希表,基于哈希算法从数组中查找相应的记录,计算相应的查找时间,并在屏幕上输出显示。(提示:当前计算机时间 函数 C\C++中参见GetTickCount)。
(3)从键盘读入 待查找 的权重数值,以顺序查找算法从数组中查找相应的记录。计算相应的查找时间,并在屏幕上输出显示。
(4)在实验报告中记录由(2)和(3)查找同一个数时的实验结果。
你的问题是什么?
很简单。
hash方法原理:
首先把 Data.txt中的 内容以 哈希函数 = 权重/Hash高度 建立 Hash表.
查找x权重的时候, 首先通过哈希函数 算出 位置 = x/Hash高度, 算出位置为y,
则通过Hash表, 可以查出 位置y处的链表, 这链表遍历一下, 取出 权重匹配的节点就出结果了.
Hash方法 通过 Hash函数定位到 Hash位置相同的 节点, 大大提高了效率.
顺序查找:
这个由于没排序, 所以for循环就搞定了.
上述回答有点笔误, Hash函数 = 权重%Hash高度.
位置 = x%Hash高度