Author:
nice01qc
Time :
Time :
散列表
简单的介绍2-3查找树和红黑树的原理和实现细节…
简单了解散列表的实现和一些基本的原理…
散列表通过散列函数计算出对应的散列值,通过散列值找到目标所在地。
例如:Java里面的hashCode()方法
// 一下是Java String 类的hashCode方法
public int hashCode() {
int h = hash;
if (h == 0 && value.length > 0) {
char val[] = value;
for (int i = 0; i < value.length; i++) {
h = 31 * h + val[i];
}
hash = h;
}
return h;
}
一般一个优秀的散列方法需要满足三个条件:
- 一致性——等价的键必然产生相等的散列值
- 高效性——计算简便
- 均匀性——均匀地散列所有键
例如:
基于拉链法的散列表
通过散列函数得到具体的位置,用链表存储每个键对应的一系列值。
参考资源: