« 頻出文字列発見問題 | メイン | MeCab 0.90 業務連絡 »

2005年01月21日

O(n) で suffix array を構築

研究業界の進展ははやく、 (multikey) quick sort をつかって
suffix array を作るのは遅すぎて過去の話のようだ。


ここ
に O(n) で作る話がある。むずかしすぎて追えない。
分割法の一種らしいが、3で割ってあまりが 0,1,2 の3種類の
index point で個別に array を作って、最後にマージする? みたい。
分割の方法でいろんな亜種があるようだ。

quick sort だと最悪 O(n^2) になる。とくに言語のように
特定のパターンが頻出する場合は(バイアスが大きい場合は)
その傾向が強くなる。さらに、いつでも O(n log n) になる手法など
いろいろ発展があるみたいだ。

投稿者 taku : 2005年01月21日 02:43

トラックバック

このエントリーのトラックバックURL:
http://chasen.org/~taku/blog/mt-tb.cgi/73