当前位置:   article > 正文

数据结构和算法——哈希表 Hash Table (一)_hash table 1

hash table 1

概要

哈希表是基础的也是重要的数据结构之一,小伙伴在面试和笔试中常常被Cue到,因此学习和掌握哈希表的原理以及使用尤为重要!接下来我们带着两个问题,哈希表的原理是什么?以及,哈希表是做什么的?对哈希表有一个基本认知。

正在学习数据结构和算法的小伙伴,可以参考我其他关于数据结构和算法相关的博文,我会努力和持续更新优质的文章供大家一起学习和讨论!
更多优质内容:看这看这…数据结构和算法相关文章

特点

Hash表即散列表,其最突出的优点是查找和插入删除具有常数时间的复杂度

原理

原理是把Key通过一个固定的算法函数即所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。
而当使用哈希表进行查询的时候,就是再次使用哈希函数将key转换为对应的数组下标,并定位到该空间获取value,如此一来,就可以充分利用到数组的定位性能进行数据定位。

优点

哈希表最大的优点 就是把数据的存储和查找消耗的时间大大降低,几平可以看成是常数时间。而代价仅仅是消耗比较多的内存,然而在当前可利用
内存越来越多的情况下,用空间换时间的做法是值得的。

另外,编码比较容易也,是它的特点之一。哈希表又叫做散列表,分为“开散列”和“闭散列”。我们使用一个下标范围比较大的数组来存储元素。可以设计一个函数(哈希函数,也叫做散列函数),使得每个元素的关键字都与一个函数值(即数组下标)相对应,干是用这个数组单元来存储这个元素:也可以简单的理解为,按照关键字为每一个元素“分类”,然后将这个元素存储在相应“类”所对应的地方。

冲突

但是,不能够保证每个元素的关键字与函数是一一对应的,因此极有可能出现不同的元素,却计算出了相同的函数值,这样就产生了“冲空”换句话说,就是把不同的元素分在了相同的“类”之中。后面我们将看到一种解决“冲突”的简便做法。总的来说,“直接定址”与“解决冲突”是哈希表的两大特点。

最后

看到这里,相信同学们对与哈希表以及有一定的概念!看看接下来的文章,相信对同学们学习hash table更有帮助哦!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/909199
推荐阅读
相关标签
  

闽ICP备14008679号