概念
哈希是一种搜索数据结构,不过哈希搜索不同于顺序搜索和二叉搜索的是:哈希可以不经过任何比较,一次直接从表中得到要搜索的元素。它是通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数就可以直接找到该元素。
哈希方法中使用的转换函数称为哈希(散列)函数,构造出来的结构称为哈希表 (Hash Table)(或者称散列表) 。
哈希冲突
哈希函数设置为:hash(key) = key % capacity; capacity为存储元素底层空间的大小。
用上面的方法进行元素搜索不必进行多次值的比较,因此搜索的速度比较快 。但是如果再次输入一个21或24等数时,就会发现其函数值所对应的位置已经有数据了。这就被称为哈希冲突。
即不同元素通过相同哈希哈数计算出相同的哈希地址,该种现象称为哈希冲突或哈希碰撞。
常见的哈希函数
1、 直接定制法
取关键字的某个线性函数为散列地址:Hash