Tech Blog
hash table
hash table
「ハッシュテーブル」
ハッシュテーブルのコードは、たぶん25年くらい前に自分で書いたコードをずっと使い続けています。
値を使って配列の要素にアクセスできるため巨大な配列の場合に、先頭から順番に探さなくていいので、高速に配列の要素が取り出せる便利なものですが、さすがに25年前に書いたコードだから、そろそろ新しいコードにしようかと思って、参考になるものがあるかなって思って、ネットを調べてみました。
C++の標準ライブラリーやGoogleが作ったアルゴリズムなどいくつかのものを評価しているページがあったのですが、意外とそれらの速度差が 少ないんです。
10%くらいかな。もっと進歩しているのかと期待したんですけどね。
というわけで、ますます新作のハッシュテーブルを作る気になってきました。いいものができたら、いろんなところのパフォーマンスが向上 しますからね。
ハッシュ値の求め方や、テーブルの配置、リハッシュ(テーブルの値を大きくする)の処理など、いろいろ工夫できるところはあるのでね。
ビット数を自由に可変できるダイジェスト値の計算とか、ハッシュテーブルの実装に寄与しそうだなって、さっき考えていました。そうすれば2の倍数のサイズの配列が、あるていど一発で配列の要素にたどり着くので。
Hasegawa