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

概要

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

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

特点

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

原理

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

优点

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

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

冲突

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

最后

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

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值