ダブル配列の検索を書いてみる

上の解説記事が素晴らしくて、自分も分かった気になりました。ありがたいことです。

解説されている内容をJavaで書いてみました。

う……ひどい……。ホントに分かったのか??(せめてテーブルも配列で表現しないと比較可能にならない気がする)だれかボスケテ……。

単語終端の情報を保持しているので、厳密なダブル配列ではありません(トリプル配列ですね)。元記事に、ずらし量の1ビットを使って単語終端を表現する案がありましたが、せっかくJavaで書くのであればビット演算なんてしたくないのであります。とはいえ、妙案があるわけでもなく、どうしたらよいのか。

もちろん、ずらしを作るアルゴリズムについては、別途勉強です。

(追記)単語終端かどうかという情報を、「算術演算で」格納する値に入れるようにしてみました。E_Mattsanさんからコメントで教えて頂きました。ありがとうございます。