1.概念
1)哈希表(散列表)是一种根据关键字 key 去寻找值 value 的数据映射结构
2)哈希表通过一个函数把key映射到表上的一个位置(哈希地址)来存储,以加快下一次查找的速度,这个函数就叫哈希函数
3)所以说,哈希技术既是一种存储技术,也是一种查找技术
2.哈希冲突
1)对不同的关键字可能得到同一哈希地址,即key1≠key2,而f(key1)=f(key2),这种现象称为冲突
2)我们可以通过精心设计哈希函数让哈希冲突尽可能少,但是冲突不能完全避免
3.哈希函数的构造方法
3.1构造原则
1)计算应简单,这样就不费时,查找起来快
2)哈希地址应分布均匀,这样可以一来保证空间的利用率,二来减少冲突
3.1除留余数法
3.2直接定址法
3.3数字分析法
3.4平方取中法
4.处理哈希冲突
4.1链地址法
4.2开放地址法(再地址法)
4.3再哈希函数法
4.4公共溢出区法
5.时间复杂度
插入、查找、删除平均时间复杂度O(1),最坏情况O(n)