散列查找算法 实验笔记6(计算机软件基础)

一、实验目的和要求
目的:熟练掌握散列查找算法。
要求:编写程序实现对给定数组序列进行散列表的建立,并在建立散列表的基础上进行查找,并返回查找成功与否。

二、实验内容
(1)散列表构建
在创建哈希表时,该程序用的是除留余数法.
取关键字被某个不大于散列表表长m的数p除后所得的余数为散列地址。即 H(key) = key MOD p,p<=m。p的选择很重要,一般取素数或m。

(2)冲突解决策略
在处理冲突时,该程序使用的是开放寻址法.即Hi=(H(key) + di) MOD m,i=1,2,…,k(k<=m-1),其中H(key)为散列函数,m为散列表长,di为增量序列,di=1,2,3,…,m-1,即线性探测再散列.若di=12,-12,22,-22,…,±(k)^2,(k<=m/2)则为二次探测再散列;di=伪随机数序列,称伪随机探测再散列。

三、依据的基本原理
从主函数可以看出,程序先调用自己写的Create函数创建一个哈希表,然后输出该哈希表的元素.随后输入一个要查找的元素.
然后再调用Haxi_Sou函数,查找这个要查找的值的下标。若要查找的元素在哈希表里,则查找成功,并输出对应的下标;若要查找的元素不在哈希表里,则输出查找失败.

四、实验步骤
首先定义一个固定长度的列表data,以及一个比列表长度大的哈希表,并初始化为0.
程序先调用自己写的Create函数创建一个长度为13的哈希表,原始数据是:{10,9,8,7,5,4,6,3,2,1,95},长度为11,这个程序使用的是除留余数法,构建的哈希表为:{0,1,2,3,4,5,6,7,8,9,10,95,0}.
然后再调用Haxi_Sou函数,查找某一个要查找的值的下标。

五、实验结果及分析
html>

猜你喜欢

转载自blog.csdn.net/zbp_12138/article/details/103442933
今日推荐