【面试复习】【数据结构】----哈希表

哈希表

  1. 哈希表、哈希函数和哈希碰撞
  2. Map和Set
  3. HashMap, HashSet, TreeMap, TreeSet

哈希表、哈希函数和哈希碰撞

在这里插入图片描述

  • 如何快速地用O(1)的速度找到一个单词?
    把单词作为key输入到hash function,这里key用了字母的ASCII码来表示,hash function是对单词的字母ASCII码求和再取30的模,对应了哈希表的索引值,就能找到单词。

  • 那是否有可能出现另外一个单词,经过求哈希函数也是得到相同的值?
    是有可能的,这就是hash collisions哈希碰撞。那怎么解决呢?
    可以在相同位置的地方建一个链表,展开,这叫拉链法
    在这里插入图片描述

- List vs Map vs Set

在这里插入图片描述
list 就是我们常用的列表
map有映射关系,和dict一样,key:value
set 集合,类似于去重后的list,实现背后(哈希表或二叉树),查找是O(1)或logn,效率比list高

HashMap, HashSet, TreeMap, TreeSet

一种是用哈希表来存储(O(1)),另一种是用二叉搜索树来存储(O(logN))
用Tree存储,是排好序的,是相对有序排列的;用hash table是乱序的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值