目标c中的前缀匹配

时间:2011-12-28 13:33:07

标签: objective-c c cocoa trie

我正在使用objective-c implementation trie进行前缀匹配,但它占用了大量内存(200k文件路径占用600MB)。任何人都可以建议我在objective-c中使用前缀匹配的替代方案。

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

我有NDMutableTrie,其中包含一些文件路径,我正在检查带有NDMutableTrie的文件夹路径。

2 个答案:

答案 0 :(得分:1)

您可以尝试OFTrie

答案 1 :(得分:1)

trie算法故意使用稀疏数据结构来加速搜索。如果这对你使用太多内存,你应该考虑使用更保守的内存的算法,例如将路径存储在有序数组中并通过二进制搜索发现匹配(无论你使用字节比较还是正则表达式来做)实际匹配),或者您可以将整批数据放入数据库并通过查询找到您的匹配。