0906, 0909 shell编程与基础算法(leetCode )

0 9 0 6

哈希表的基本知识:

哈希表(Hash Table)又称散列表,是除顺序存储结构、链式存储结构和索引表存储结构之外的又一种存储结构。

哈希碰撞:解决办法

开放定址法:是一类以发生冲突的哈希地址为自变量,通过某种哈希冲突函数得到一个新的空闲的哈希地址的方法。

(1)线性探测法

从发生冲突的地址(设为d)开始,依次探测d 的下一个地址(当到达下标为m-1的哈希表表尾时,下一个探测的地址是表首地址0),直到找到一个空闲单元为止。

       d0=H(key)

       di=( di -1+1) % m(1≤i≤m-1) 
(2)二次探测法
       d0=H(key)
       di=(d0±i2) % m(1≤i≤m-1)
       其中,d0是发生冲突的地址,m是哈希表的长度。

leetCode 242

哈希思想

ca43a304a3f746a9b9842a16b4cd00ae.png

字典方式

ac00a7cb4b2c4245af51722991c72c0f.png

 

leetCode 350

9d12dbb2776f482a9cda5462c643759d.png

 

leetCode 349

4965ecfe427f472ea068ada8fa05e965.png

0 9 0 9

使用哈希表的场景:

(1)统计频率:

哈希表常用于统计元素的出现频率。 例如:给定一个字符串,统计每个字符出现的次数。

使用哈希表可以高效地处理这个任务,时间复杂度为 O(n)。

(2)快速查找:

如果你需要频繁查找数据(如在数组中查找某个元素),使用哈希表可以避免线性扫描,显著提高查找效率。 例如:给定一个数组,判断其中某个元素是否存在。遍历数组的时间复杂度是 O(n),而哈希表可以将这个查找过程优化为 O(1)。

leetCode 202

7fefb65870104093abbd55981f2d40cf.png

leetCode 1

ed62e749141d4c439279e5933ccb5ca6.png 

leetCode 454

b62856a11bc74986a2ed2e4f07f0114b.png 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值