C++程序员面试算法之哈希算法

        本文由博主经过查阅网上资料整理总结后编写,博主水平有限如存在错误或不恰当之处请留言以便更正,内容仅供大家参考学习。


         首先看两篇博客  看完这些,你就彻底理解“哈希算法”了五分钟带你了解哈希算法究竟是什么!到此,我想你对哈希算法应该已经有了一个初步的理解。

        Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。那么一个可靠的哈希算法,应该满足:1.对于给定的数据M,很容易算出哈希值X=F(M);  2.根据X很难反算出M;   3.很难找到M和N使得F(N)=F(M)。

       简单解释:哈希(Hash)算法,即散列函数。它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。

                          

如果想继续深入一点了解哈希算法,可以选择查阅博客  Hash算法的讲解  讲解了常用的构造散列函数的方法、哈希算法的应用、哈希函数的分类等。百度百科哈希表哈希表....

在我查阅了部分资料后发现自己以目前的能力暂时理解还有点点困难,等我后面再深入一点点的研究理解吧!暂时就先写到这里吧。