/darts-clone

Automatically exported from code.google.com/p/darts-clone

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

== Darts-clone: A clone of Darts (Double-ARray Trie System) ==

Darts-clone is a clone of Darts (Double-ARray Trie System),
which is a C++ header library for double-array structure.

The major advantages of Darts-clone are as follows:

1. Half-size units

   While Darts allocates 8 bytes to each unit, Darts-clone allocates only
   4 bytes to each unit. This feature simply halves the size of dictionaries.

2. More sophisticated structure

   While Darts uses a trie to implement a dictionary, Darts-clone uses a
   Directed Acyclic Word Graph (DAWG), which is derived from a trie by
   merging its common subtrees. Darts-clone thus requires less units than
   Darts if a given keyset contains many duplicate values.

Due to these advantages, Darts-clone achieves more compact dictionaries
without degrading search performance.

Project URL: http://code.google.com/p/darts-clone/

----

== Darts-clone: Darts(Double-ARay Trie System)のクローン ==

Darts-clone はダブル配列の C++ ヘッダライブラリである
Darts のクローンであり,以下のような特長を持っています.

1. 要素のサイズが半分

   Darts が 8 bytes の要素を用いるのに対し,Darts-clone は 4 bytes
   の要素を使用します.そのため,辞書のサイズは単純に半減します.

2. 辞書データ構造の改良

   Darts がトライというデータ構造を用いるの対し,Darts-clone は
   Directed Acyclic Word Graph(DAWG)というデータ構造を用います.
   そして,DAWG はトライに含まれる共通部分を併合することで得られる
   データ構造なので,キーに関連付ける値に重複がたくさんあれば,
   Darts-clone の方が少ない要素で辞書を構成できます.

これらの利点により,Darts-clone は検索の機能や時間を劣化させず,
よりコンパクトな辞書を実現しています.

プロジェクト URL: http://code.google.com/p/darts-clone/