学习笔记——初识哈希函数(散列函数)

最近开始写LeetCode算法题,第一道就是两数之和,其中一解便是使用哈希表,比双层循环暴力枚举更高效,遂开始学习哈西函数,哈希表这一知识

首先,哈西函数是一个你给予一个物品它就返回一个数字的函数,而将这个物品以及得到的返回数去一一对应填入一个数组、表中,这便是哈希表,在理想情况下查找效率达到了O(1),因为你可以直接通过返回数(作为该物品的索引)直接获得该物品的及其信息。普遍应用便是通讯录查找,网页跳转缓冲。

既然有理想情况,那当然也有不理想的,那种情况我们称之为冲突。什么情况下会冲突呢,很简单,当你给了两个不同的物品给哈希函数,而哈希函数却给出了一个相同的数字,这就会导致你最终的表中有格子里面会有多样信息,从而致使查找出错,解决方法就是在那个拥挤的格子处建一个链表,分开存多个物品。所以在最糟糕的情况下,哈希表的查找效率会是O(n)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值