少し前に見つけたハッシュアルゴリズムがあり、小さなファイルに非常に役立ちました。メモリから、アルゴリズム自体は非常に単純でした。次のバイトでハッシュを追加し、固定数(おそらく33?)を掛けると、最後にビットシフトが発生しました。
疑似コードは次のようになります。
for each byte:
x = nextbyte * 33
hash += x
hash <<= 4
このハッシュアルゴリズムの名前を知っている人はいますか?
Java ハッシュ コード アルゴリズムのように見えます。
public static int calculateHash(String input) {
int h = 0;
int len = input.length();
for (int i = 0; i < len; i++) {
h = 31 * h + input.charAt(i);
}
return h;
}
ただし、これが正しくない場合は、ハッシュ関数のリストをスクロールしてみてください