1、什么是hash表
散列表(hash table,也叫哈希表),是根据关键码值(key value)而直接进行访问的数据结构。
也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫 散列函数,存放记录的数组叫做散列表。
给定表M,存在函数f(key),对于任意给定的关键字值 key,代入函数后若能得到包含改关键字的记录在表中的地址,则称表M为哈希(hash)表,函数 f(key)为哈希(hash)函数。
2、hash冲突
对应不同的关键字可能获得相同的 hash 地址,即 key1 ≠ key2,但是f(key1) = f(key2)。这种现象就是冲突,而且这种冲突只能尽可能的减少,不能完全避免。
因为哈希函数是从关键字集合和地址集合的映像,通畅关键字集合比较大,而地址集合的元素仅为哈希表中的地址值。
大约 3 分钟