hash算法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hash算法相关的知识,希望对你有一定的参考价值。
谁帮我用Hash算法编写一个简单的例子。
例如,有两个字符串,一个为a=gfdgfd,另外一个为b=xzcfs。
如何快速的找出相同的字符呢??
所有散列函数都有如下一个基本特性:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果。但另一方面,散列函数的输入和输出不是一一对应的,如果两个散列值相同,两个输入值很可能是相同的,但并不能绝对肯定二者一定相等。
例如:设计一个针对字符串的Hash算法,简单地返回字符串的首字母:
def Hash_string(str):
return str[0]
那么:
Hash_string(a)=Hash(gfdgfd)=g
Hash_string(b)=Hash(xzcfs)=x
这样就可以最快速地判断出两个字符串不相等。这个Hash算法常用于将大量文件分散存储。
对于首字母相同的两个字符串,本算法得到的Hash值肯定相同,这就是出现了命中冲突。解决命中冲突有很多策略,比如:再散列法、链地址法、公共溢出法……等等。
一个好的Hash算法,应该保证高命中率和均匀分布。 参考技术A 找相同字符:
把字符串分成单字符数组;
for(i=0;i<a.length();i++)
for(j=0;j<.length().j++)
if(a[i]=b[j])
print(a[i]);
以上是关于hash算法的主要内容,如果未能解决你的问题,请参考以下文章