什么是哈希?使用哈希表(数组)来存储元素, 设计一个哈希函数,使得每个元素的关键字都与一个数组下标,即hash值相对应,
为什么?用空间换时间
如何设计?
直接定址法、(数组 哈希函数为关键字的线性函数
数字分析法、 分析关键字集中的全体, 并从中提取分布均匀的若干位或它们的组合作为地址。
平方取中法、除留余数法 、随机数法
处理冲突
开放定址法 , 线性探测再散列 (常数增量) , 平方探测再散列 ,随机探测再散列
链地址法 将所有哈希地址相同的记录都链接在同一链表中
应用
有一个庞大的字符串数组,从这个数组中查找是否有某个字符串
可以用字符串得到一个整数关键字,然后在用哈希表存储