hash 的应用
散列表
根据key计算key在表中的位置的数据结构;是key和其所在存储地址的映射关系; 注意:散列表的节点中 kv是存储在一起的
struct node {
void *key;
void *val;
struct node *next;
}
与平衡二叉树相比
通过比较,结构有序,提升搜索效率
key与节点存储位置的映射关系
组成
hash函数
映射函数Hash(key)=addr,hash 函数可能会把两个或两个以上的不同key映射到同一地址,这种情况称之为冲突(或者hash碰撞);
数组
选择函数
- 计算速度快
- 强随机分布(等