初步学习:hash存储和hash表的原理

感谢作者:本文来源:https://www.cnblogs.com/5poi/p/7273743.html

哈希表的定义:

  哈希存储的基本思想是以关键字key为自变量通过一定的函数关系(散列函数或哈希函数)以这个值作为数据原始的地址。并将数据存放到相应的存储单元中。

  查找是在根据查找的关键字采用同样的算法计算除哈希地址,然后直接到相应的存储单元中找到要找的数据元素即可。

哈希表的应用:

  哈希表hash_table是实现字典操纵的一种有效的数据结构。

  尽管在最坏的情况下散列表中查找一个元素的事件与在链表中查找的事件相同。达到了O(n).

  然而在实际的应用中,散列的查找的性能是极好的,在一些合理的假设下,在散列表中查找一个元素的平均事件是O(1)

建立hash表操作步骤

  1. step1 取数据元素的关键字key ,计算hash函数,计算地址。如果该地址对应的空间没有被占用,则将该元素存入,否则进入step2.解决冲突。

  2. step2 根据选择的冲突处理办法,计算关键字key的下一个存储地址,若下一个存储地址仍然被占用,则继续执行step2.知道找到存储地址为止

常用的哈希函数

  构造hash函数的方法很多,但是总的原则是尽可能将关键字集合空间均匀的映射到地址集合空间中,尽可能的降低冲突发生的概率。

1. 除留余哈希函数

  

原文地址:https://www.cnblogs.com/dousil/p/12883009.html