散列查找算法 实验笔记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的哈希表,原始数据是:{1

相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页