2011-12-28 3 views
1

私はobjective-c implementationtrieを接頭辞マッチングに使用していますが、それは膨大なメモリを消費しています(200kファイルのパスでは600MBです)。誰でも私に対話的なプレフィックスマッチングの代替案を提案することができます。目的地cでの接頭辞のマッチング

NDMutableTrie *pathsTrie=[[NDMutableTrie alloc] init]; 
[pathsTrie addString:filepath]; //filepath is NSString 
[pathsTrie containsObjectForKeyWithPrefix:pathForItem] 

私はいくつかのファイルパスが含まれていると私はそのNDMutableTrieとフォルダのパスをチェックしていますNDMutableTrieを、持っています。

+1

"2lakhsファイルパス"とは何ですか?あなたが探しているものについてさらに詳しくお知らせください。 600MBのメモリー使用以来、正規表現や単純な文字列検索を使用しない理由は何ですか? –

+0

200kファイルパス。 –

+0

パス名のみまたは一般的な文字列と一致させようとしていますか? – sbooth

答えて

1

お試しください。OFTrie

+0

OFTrieのソースコードURLを教えてください。 https://nodeload.github.com/omnigroup/OmniGroup/zipball/master URLが機能していません。 –

+0

私はgitリポジトリをクローンしなければなりませんでした。 git [link](https://github.com/omnigroup/OmniGroup.git)です。 –

+0

私はフレームワーク全体がiOS7を使い始めるのがかなり難しいと感じました - 私はちょうど彼らのトライを使いたいだけです! – fatuhoku

1

トライアルゴリズムは、意図的に検索を高速化するために疎なデータ構造を使用します。これがあまりにも多くのメモリを使用している場合は、より慎重なメモリ使用のアルゴリズムを考慮する必要があります(たとえば、順序付き配列にパスを格納し、バイナリ検索で一致を検出するなど)実際の照合)、データベース全体をデータベースに入れ、照会で一致を見つけることができます。