Hash
来源:互联网 发布:淘宝模特拍摄 下载 编辑:程序博客网 时间:2024/05/23 20:15
Hash根据我的理解就是将一串字符或一串数字经过hash函数的处理后
得以储存下来使得后面的查找方便又快捷,是一种用空间换时间的方式。
常用的hash函数:可以将key值或它的取余(通常用质数),如果实现知
道数据的格式的话可以进行分析,还有平方求和法和折叠法。
如果是字符串的话可以使用BKDRHash函数
unsigned int do_hash(char a[]){ unsigned int seed=131; unsigned int hash=0; int t=0; for(char i=a[t];i!='\0';i=a[t]){ hash=hash*seed+i; t++; } return hash%mod;}
如果是全排列可以用康托展开 : http://blog.csdn.net/zhongkeli/article/details/6966805
当然,大多数的Hash函数都会造成不可避免的冲突,即do_hash(a)=do_hash(b);这时可以
用开放地址法和拉链法避免冲突所带来的影响。
开放地址法: http://blog.csdn.net/w_fenghui/article/details/2010387
拉链法类似于图的邻接链表,在同一hash[ ]下开多个单位格储存冲突,查找则是一一查找。
1 0
- hash
- Hash
- hash
- hash
- Hash
- hash
- Hash
- HASH
- hash
- hash
- HASH
- hash
- hash
- Hash
- hash
- hash
- Hash...
- hash
- 自动对焦的原理
- 八皇后
- **YII** 系列一理论知识
- 【字符串4】-第一个只出现一次的字符
- 版本更新
- Hash
- JQuery学习之旅(5)
- Codeforces Round #218 Hamburgers
- masm汇编伪指令
- Red packet 二分算法
- srs wiki 小结
- coderforces 372A Counting Kangaroos is Fun(二分)
- link与import导入方式的区别
- Android 监听双卡信号强度(附完整代码)