理解 哈希

什么是哈希?使用哈希表(数组)来存储元素,  设计一个哈希函数,使得每个元素的关键字都与一个数组下标,即hash值相对应,

为什么?用空间换时间

如何设计?

直接定址法、(数组 哈希函数为关键字的线性函数

数字分析法、   分析关键字集中的全体, 并从中提取分布均匀的若干位或它们的组合作为地址。

平方取中法、除留余数法 、随机数法

处理冲突 

开放定址法 , 线性探测再散列 (常数增量) , 平方探测再散列 ,随机探测再散列

链地址法 将所有哈希地址相同的记录都链接在同一链表中


应用

有一个庞大的字符串数组,从这个数组中查找是否有某个字符串

可以用字符串得到一个整数关键字,然后在用哈希表存储


你可能感兴趣的:(学习日记)