Hash表

1,编程思路关键点

(1)理清什么是Key什么是Value

(2)哈希函数选择

哈希函数映像到地址几何中任何一个地址的概率必须是相等的。

(3)冲突处理方法

(4)优化:更少的平均查找长度

2,基本知识点

(1)哈希函数

a,直接定址(巧用)

H(key) = key,H(key) = a * key + b

b,数字分析(巧用)

c,平方取中(不知道全部关键字时使用)

d,除留余数(常用)

(Times33)常用字符串解决方案:

nHash = nHash*33 + *key++;

效率高,冲突低。

方法:不断乘33分布。

(2)冲突处理

a,开放定址,再散列

H = (H(key)+ d ) MOD m

b,再哈希(再来个哈希函数)

c,链地址法

d,公共溢出区

 

 

LeetCode题目:

Easy:1,217

Medium:3,

Hard:

posted on 2018-03-05 10:59  米兰达莫西  阅读(131)  评论(0编辑  收藏  举报