我正在使用objective-c implementation trie进行前缀匹配,但它占用了大量内存(200k文件路径占用600MB)。任何人都可以建议我在objective-c中使用前缀匹配的替代方案。
NDMutableTrie *pathsTrie=[[NDMutableTrie alloc] init];
[pathsTrie addString:filepath]; //filepath is NSString
[pathsTrie containsObjectForKeyWithPrefix:pathForItem]
我有NDMutableTrie
,其中包含一些文件路径,我正在检查带有NDMutableTrie
的文件夹路径。
答案 0 :(得分:1)
您可以尝试OFTrie。
答案 1 :(得分:1)
trie算法故意使用稀疏数据结构来加速搜索。如果这对你使用太多内存,你应该考虑使用更保守的内存的算法,例如将路径存储在有序数组中并通过二进制搜索发现匹配(无论你使用字节比较还是正则表达式来做)实际匹配),或者您可以将整批数据放入数据库并通过查询找到您的匹配。