说说哈希表/散列表

哈希表和散列表是一个东西,只是叫法不同而已。以下统一称呼为哈希表。

刚刚学习哈希表的时候,我其实对它的了解不是很深入,只知道它是一种key对应value的复杂数据结构。其实,哈希表包括的内容有很多。

哈希表是由哈希函数和数组组成的。

哈希函数用来产生 key值,它的主要功能是把输入映射到数字。通过哈希函数,可以把字符串或者其他类型的key值映射为数组的下标 index 。

哈希函数必须满足以下特征:

1、它必须是一致的。假设哈希函数的输入是 "apple"时得到的是4,那么每次输入"apple"时,得到的都必须是4.

2、它应将不同的输入映射到不同的数字。

通过哈希表,只要给出一个 key ,就可以高效的查找到它所匹配的value,时间复杂度接近O(1)。

总的来说:

哈希表也叫散列表,是存储key-value映射的集合。对于某一个key,哈希表可以在接近O(1)的时间内进行读写操作。哈希表通过哈希函数实现和Key和数组下标的转换,通过开放寻址法和链表法来解决哈希冲突。

在Python中,字典提供了哈希表的实现。

哈希表的使用:

1、哈希表可以用来进行查找,尤其是大海捞针式查找。

2、我们访问像http://adio.io这样的网址时,计算机必须将adit.io转化为ip地址。

如:adio.id ---> 173.255.248.55

这就是我们说的将网址映射到ip地址,这个过程在网络中被成为DNS解析。哈希表是提供这种功能的方式之一。

3、散列表还可以作用缓存。缓存是一种常用的加速方式,所有大型网站都是用缓存,而缓存的数据则存储在哈希表中。

 

哈希表的性能:

哈希表要避免冲突,需要有:

1、较低的填装因子;填装因子越低,发生冲突的可能性就越小,一般填装因子大于0.7时,就要调整哈希表的长度。

2、良好的哈希函数;

注:填装因子=哈希表包含的元素数 / 位置总数

填装因子度量的是哈希表中有多少位置是空的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值