哈希的一点看法
时间:2010-07-01 来源:huashan358
用散列表可以计算出特定的数据存储在表的什么位置,过程如下
1.找到要存储的值
2.用这个值生成hash键
3.根据生成的键值在槽中存储这个值
下面是一段生成哈希键的代码,摘自 程序员实用算法 第三章
int hash_birthday( char *data ) { const int days_elapsed[ 12 ] = {0,31,60,91,121,152,182,213,244,274,305,335}; int mm, dd; char record[ 128 ];
strcpy(record , data);
record[4] = 0; dd = atoi(record + 2); //获得天数 record[2] = 0; mm= atoi(record ); //获得月份
if( mm < 1 || mm > 12) { printf("wrong\n"); exit(1); }
return days_elapsed[ mm - 1] + dd; //根据天数和月份返回hash键值 }
下面是一段生成哈希键的代码,摘自 程序员实用算法 第三章
int hash_birthday( char *data ) { const int days_elapsed[ 12 ] = {0,31,60,91,121,152,182,213,244,274,305,335}; int mm, dd; char record[ 128 ];
strcpy(record , data);
record[4] = 0; dd = atoi(record + 2); //获得天数 record[2] = 0; mm= atoi(record ); //获得月份
if( mm < 1 || mm > 12) { printf("wrong\n"); exit(1); }
return days_elapsed[ mm - 1] + dd; //根据天数和月份返回hash键值 }
相关阅读 更多 +