hash学习笔记
来源:互联网 发布:金蝶软件培训教程 编辑:程序博客网 时间:2024/06/07 05:38
对于hash的主要思想:hash主要是以空间来换取时间,所以hash往往在时间上具有很大的优势!
这里主要总结针对字符串和大数据整理几个hash常用的方法:
线性探针法:
对于线性探针法,主要处理一些大数据比较方便,使用线性探针可以压缩存储数据!即一段内存里面存储更多的数据。线性探针法的效率更存储空间的大少成正相关,空间越大所花时间查找效率越低!
模板:
struct node {int val; //权值bool f; //是否存储}a[N];int xianxin(int v){int p=v % MAX;if(p < 0) p+=MAX;while(a[p].f && a[p].val!=v) p=(p+1)%MAX;return p;//p为索引}
字符串成整数法:
对于字符串映射,很多时候可以考虑到用map,对于大整数同样也是如此。但是map的容量有限,很容易就爆了,或者超出预定的内存!这时可以先使用ELFHASH法。一旦将字符串变成整数,接下来一切好办。
ELF模板:
inline int ELFhash(char *key){ unsigned long h = 0; unsigned long g; while( *key ) { h =( h<< 4) + *key++; g = h & 0xf0000000L; if( g ) h ^= g >> 24; h &= ~g; } return h;}/* 解释:*/
//将一个字符串的数组中的每个元素依次按前四位与上一个元素的低四位相与,
//组成一个长整形,如果长整的高四位大于零,
//那么就将它折回再与长整的低四位相异或,
//这样最后得到的长整对HASH表长取余,得到在HASH中的位置。
PS:对于hash函数其实有很多种类,以后见到,再做补充!
- Hash函数学习笔记
- hash学习笔记
- hash算法学习笔记
- Hash table 学习笔记
- hash学习笔记
- Hash算法学习笔记
- 【学习笔记】hash表和hash函数
- perl 哈希(hash) 学习笔记
- ruby学习笔记(3)--Container(Array/Hash)
- HASH表学习笔记(转)
- 原创:Data Structure 学习笔记 之一 hash
- [wget学习笔记] 哈希表 hash table (ZZ)
- ruby学习笔记-hash方法汇总
- Cassandra学习笔记之一致性hash回顾
- redis学习笔记4,hash类型
- ruby学习笔记-hash方法汇总
- perl 哈希(hash)学习笔记(—)
- hash集合源码学习笔记(一)
- linux中Find、whereis、locate、which查找文件命令总结
- 使用 Socket 通信实现 FTP 客户端程序
- GridView学习记录
- IntPrioritySet lm3s
- 操作系统学习笔记六:进程同步
- hash学习笔记
- JDBC基础教程-01
- Box2d源码学习<三> 内存管理之栈的实现
- 壳的世界(一)
- vector构造函数
- OpenGL入门学习
- scope" must be declared for element type "bean"异常
- 服务器控件的生命周期
- 亮点太多就毫无亮点,Pinterest瀑布流网站