在C/C++中有没有速度和缓存效率高的trie实现?我知道trie是什么,但我不想重新发明轮子,自己实现它。
发布于 2009-06-24 09:35:33
如果你正在寻找一个ANSI实现,你可以从FreeBSD那里“偷走”它。您要查找的文件名为radix.c。它用于管理内核中的路由数据。
发布于 2009-08-14 23:38:18
我知道这个问题是关于现成的实现,但作为参考...
在你攻击朱迪之前,你应该先读一读"A Performance Comparison of Judy to Hash Tables“。然后,在谷歌上搜索这个标题可能会让你一生都在讨论和反驳。
我所知道的一个显式缓存敏感的trie是HAT-trie。
HAT-trie,当正确实现时,是非常酷的。但是,对于前缀搜索,您需要在散列存储桶上执行排序步骤,这与前缀结构的概念有些冲突。
一个更简单的trie是burst-trie,它本质上给出了某种标准树(如BST)和trie之间的插值。我喜欢它的概念,它更容易实现。
发布于 2009-06-24 05:21:55
我和libTrie在一起很走运。它可能没有专门针对缓存进行优化,但对于我的应用程序来说,它的性能总是不错的。
https://stackoverflow.com/questions/1036504
复制相似问题