我有大约5000万个字符串的集合,每个字符串大约有100个字符。我正在寻找非常有效(运行时和内存使用)的通用后缀树实现。
我已经尝试https://github.com/npgall/concurrent-trees但是由于运行时间有效,它需要大量的内存。 250万字符串的长度为100.已经花了50GB的内存。
答案 0 :(得分:0)
不是理想的解决方案,但您可以使用enter link description here。 它有一个CritBit1D版本,你可以存储任意长度的密钥。
缺点#1: 你必须首先将你的字符串转换为long [],即。每长4-8个字符。
缺点#2: 如果您需要并发版本,则必须查看使用copy-on-write并发的Critbit64COW。但是,这还没有针对Critbit1D实现,因此您需要自己使用Critbit64COW作为模板。
但是,您只需将64位哈希码存储为密钥,然后就可以使用CritBit64(单线程)或CritBit64COW(多线程)。 顺便说一下,即使使用CritBit64,同时阅读也不是问题。
免责声明:我是CritBit的作者。