哈希表

1.什么是哈希表:

元素是链表的数组

Hash Table,也叫散列表,是根据关键码值(Key Value)而直接进行访问的的一种数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找速度。这个函数叫做散列函数,存放记录的数组叫做散列表。

哈希表隐藏了内部细节, 而对外的使用则非常的简单.只需定义key的hash函数和compare函数即可.

 

2.哈希表时间复杂度

建表复杂度O(n)

查找复杂度O(1)

插入复杂度O(1)

删除复杂度O(1)

 

3.哈希表适用条件

速度快,消耗内存多,适用于查找速度要求高且内存空间足够的时候

 

4.再哈希的触发条件

哈希表结构有两个重要的参数, 容量大小(Capacity)和负载因子(LoadFactor).两者的乘积 Capacity * LoadFactor决定了哈希表rehash的触发条件.

 

5..解决碰撞的方法:

链地址法:若碰撞则链接在后面,又叫闭哈希法

开放地址法(探测):若碰撞则放在下一个位置,又叫开哈希法

再哈希

建立公共溢出区

 

6.链地址法和开放地址法的优缺点比较:

(1)链地址法:

优点:适合表长不固定的情况

缺点:指针需要额外的空间

(2)开放地址法:

优点:适合节点规模小的情况

缺点:(a)处理溢出困难

         (b)删除困难

         (c)堆聚会引起进一步堆聚

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值