ダブル配列の検索を書いてみる
- 情報系修士にもわかるダブル配列 http://d.hatena.ne.jp/takeda25/20120219/1329634865
上の解説記事が素晴らしくて、自分も分かった気になりました。ありがたいことです。
解説されている内容をJavaで書いてみました。
- ダブル配列の検索 https://gist.github.com/1931737
う……ひどい……。ホントに分かったのか??(せめてテーブルも配列で表現しないと比較可能にならない気がする)だれかボスケテ……。
単語終端の情報を保持しているので、厳密なダブル配列ではありません(トリプル配列ですね)。元記事に、ずらし量の1ビットを使って単語終端を表現する案がありましたが、せっかくJavaで書くのであればビット演算なんてしたくないのであります。とはいえ、妙案があるわけでもなく、どうしたらよいのか。
もちろん、ずらしを作るアルゴリズムについては、別途勉強です。
(追記)単語終端かどうかという情報を、「算術演算で」格納する値に入れるようにしてみました。E_Mattsanさんからコメントで教えて頂きました。ありがとうございます。
- ダブル配列の検索(改)https://gist.github.com/1964556