在贾瓦和伊夫的洗.中,我很新鲜。 我有400件物品清单(储存在1.5x=600件清单中),该物品在1-10k之间。 我一直在研究一些散列函数,我最初在包装单上抄录了例子,这套包装刚刚使用。 我注意到,我已经获得大约50-60%的废 no,这似乎太多。 我还注意到,仅仅用600 子 mo,就会将其削减到50%的固体垃圾。
My current hash function looks something like, and for being as ugly as it is, it s only a 1% decrease in nulls from a simple modding, with an avg list length of 1.32...
public int getHash( int id )
{
int hash = id;
hash <<= id % 3;
hash += id << hash % 5;
/* let s go digit by digit! */
int digit;
for( digit = id % 10;
id != 0;
digit = id % 10, id /= 10 )
{
if ( digit == 0 ) /* prevent division by zero */
continue;
hash += digit * 2;
}
hash >>= 5;
return (hash % 600);
}
创建<<simpleh>的机能是什么?