概念的に単純な線形時間サフィックスツリーの構築


13

1973年、ワイナーはサフィックスツリーの最初の線形時間構築を行いました。このアルゴリズムは、1976年にMcCreightによって、1995年にUkkonenによって簡素化されました。それにもかかわらず、私はウッコネンのアルゴリズムが概念的に比較的関与していると思います。

1995年以降、ウッコネンのアルゴリズムが単純化されていますか?


4
Farachらエル1998年、私は、これは読んで開始するには良い場所だと思う:scholar.google.co.uk/...
ラドゥグリゴール

回答:


9

接尾辞ツリーの構築を直接単純化する新しい結果があったかどうかはわかりません。ただし、線形時間で接尾辞配列を構築するための非常に単純なアルゴリズムを提供する結果が少なくとも1つありました。

O1

Onlgn


1
O(N lg N)時間で接尾辞配列を構築する簡単な方法へのポインタを教えていただけますか?
ランダムブルー

1
ラベルがサフィックス間の順序関係に対応するように、長さ2 ^ kのすべてのサフィックスに整数でラベルを付けます。最初のステップ(k = 0)は明らかです。ステップkでラベルを計算するには、ステップk-1のラベルを使用して基数ソートを実行します。このペーパーは理解しやすいものでなければなりません:webglimpse.net/pubs/suffix.pdf
zotachidil

7

言及された内容(Kärkkäinen&Sanders、2003)に加えて、Kärkkäinen、Sanders and Burkhard、2006による「新しい」バージョンに感謝します。このアルゴリズムは、基本的にファラハのアルゴリズムの構造に従います。おそらく概念的には簡単ですが、本当のボーナスは、読者にアルゴリズムの実装を提供することです。それはC ++の約50行だけなので、実際には隠された詳細はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.