hash总结(个人)

来源:互联网 发布:淘宝怎么看自己的淘龄 编辑:程序博客网 时间:2024/04/30 11:38

本文只是随便说说hash的概念(换句话说,没有技术含量的= =)

放假回家前随便刷了几道hash题(虽说很多都是看题解过的),回家第一天,先来随便总结一下。

一:

1.hash其实就是弄一个函数(乱搞),然后对所给的数据进行hash得到一个key,这个key就是我们查找这个数据的关键。
2.例如对于坐标(x,y),我们可以用它的x^2+y^2作为key。对于一个字符串的,我们可以用h[i] = h[i+1]*x+str[i],其中x为自己设定(刘汝佳上面的)。还有数值加起来作为一个key也是可以的。反正就是很多,自己瞎弄都可以。
3.有的hash函数设计得好,所得的key基本不会碰撞。除非你能保证你的key不发生碰撞,否则一般是要开个vector来保存一下key相同的。由于vector也不能开太多个,因此为保证合理的key范围,对key要进行取模MOD,我一般都是设为99997,大概就10^5。(当然根据情况而定)
4.每次查找的时候,直接根据hash的值查找,对vector里面都查找一遍。这样的查找复杂度将会变得很低。

二:
做题过程中的一些心得:
1.如果时间卡得较紧,就不要用乘法之类进行hash;
2.待……



0 0
原创粉丝点击