hur.cn - 华软网

 热门搜索

求教这个散列函数啥意思

  作者:未知    来源:网络    更新时间:2011/5/25
//url数据散列函数
unsigned int Hflp(char *url)
{
unsigned int n=0;
char* b=(char *)&n;
for(int i=0;i<strlen(url);i++)
b[i%4]^=url[i];
return n%_URL_NUM_;
}

求教。。
---华软 网友回答---
由某种算法得出一个字符串的hash值
具体哪句话不好理解?
---华软网友回复---
将一个字符串以这个函数中的步骤,转换为一个32位整形数。

散列函数又称HASH函数,可以用来计算HASH表的索引,以便能够以一个较小长度的定长数组保存很大范围的一系列值,并可在固定时间内实现元素的随机访问和插入。
---华软网友回复---
引用 1 楼 ouyh12345 的回复:
由某种算法得出一个字符串的hash值
具体哪句话不好理解?

b[i%4]^=url[i];
这个的运算顺序是咋样的。。
---华软网友回复---
是不是就每个i/4取余再不断地和url i比较啊
还是不同的i取余相互比较
---华软网友回复---
n是32位的,这里把它分割成了4个8位的字节,循环的、依次和传入的url的每个字节进行运算,i%4就是这个作用。
^=是异或
最后_URL_NUM_应该是你的HASH表的大小      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。