Соответствие префикса в цели c - PullRequest
1 голос
/ 28 декабря 2011

Я использую реализацию target-c из trie для сопоставления префиксов, но она занимает огромную память (для путей к файлам 200 КБ требуется 600 МБ).Может ли кто-нибудь предложить мне любую альтернативу для сопоставления префиксов в target-c.

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

У меня есть NDMutableTrie, который содержит несколько путей к файлам, и я проверяю путь к папке с этим NDMutableTrie.

Ответы [ 2 ]

1 голос
/ 25 мая 2012

В алгоритме Trie специально используется разреженная структура данных для ускорения поиска.Если для этого используется слишком много памяти, вам следует рассмотреть алгоритм с более консервативным использованием памяти, например, сохранение путей в упорядоченном массиве и обнаружение совпадения с помощью бинарного поиска (независимо от того, используете ли вы байтовые сравнения или регулярные выражения для выполненияфактическое соответствие), или вы можете поместить весь лот в базу данных и найти свои совпадения с помощью запросов.

1 голос
/ 28 декабря 2011

Вы можете попробовать OFTrie .

...