请问一下这个m=13怎么得来的,h(5)的余数是11,为什么是等于5

如题所述

我学的也比较浅,不能给你太多的帮助,我就说一下我知道的一小部分,其他的交给路过的大神来帮忙吧。
首先,你说的这个是哈希函数吧。它的概念是:
哈希表中元素是由哈希函数确定的。将数据元素的关键字K作为自变量,通过一定的函数关系(称为哈希函数),计算出的值,即为该元素的存储地址。

这是——除留余数法
取关键字被某个不大于哈希表表长m的数p除后所得余数为哈希地址。
H(key)=key MOD p (p<=m)
这里m=13是字节,作为p。而%是mod,表示求余数。
所以你说的那个h(5)=13*0+5=5。
后面线性探测我就不是特别懂了。但是概念是这样的,如下:
若已知哈希函数及冲突处理方法,哈希表的建立步骤如下:

Step1. 取出一个数据元素的关键字key,计算其在哈希表中的存储地址D=H(key)。若存储地址为D的存储空间还没有被占用,则将该数据元素存入;否则发生冲突,执行Step2。

Step2. 根据规定的冲突处理方法,计算关键字为key的数据元素之下一个存储地址。若该存储地址的存储空间没有被占用,则存入;否则继续执行Step2,直到找出一个存储空间没有被占用的存储地址为止。
温馨提示:答案为网友推荐,仅供参考