哈希函数
哈希函数
* 1.特征:
* (1).其自变量的范围是无穷大的,但因变量的范围是有限且确定的
* (2).在自变量相同情况下,哈希函数得到的因变量值一定相同
* (3).不同的自变量可能会得到相同的因变量值,但针对一个成熟的哈希函数,其发生的概率极低
* (4).离散性:相似的自变量通过哈希函数算出的因变量绝大部分情况下都是完全不同的
* 均匀性:所得到的哈希函数值,均匀的分布在值域范围中
* 2.应用:
* (1).通过哈希函数的均匀性,如果要让一批大范围数缩到一个0——m范围中,可以先通过哈希函数求其哈希值,
* 然后通过%m运算实现均匀分布在0——m的空间当中
*
* 实例分析:
* 1个文件中总共有40亿个数,只给定1G内存空间,从中找到出现次数最多的数
*
* 解析:
* 1.如果直接用HashMap记录,则最坏情况下要有40亿个HashMap会导致空间不足.
* 2.通过Hash函数进行分步处理:
* (1).将所有的数都转为Hash函数值后取%100,将这40亿个数均分到100个小文件中,避免空间溢出
* (2).然后对这100个文件,分别使用HashMap,找到每个文件中出现最多次数的数
* (3).再将100个文件中出现次数最多的数进行对比,得到总的出现次数最多的数