Questions tagged «trie»

2
什么是Aguri树?
浏览一些旧的Hacker News文章时,我遇到了一个用户的帖子,内容是 Aguri树,这些树将有界大小的基数trie(例如您将在软件路由表中使用)嫁接到LRU列表,并自动从模式中合成聚合(例如来自所有IP的1000个观察值的10.0.0.0/16)插入。它们在流量分析中最为人所知,但我们也在运行时内存分析中也使用了它们。 〜tptacek 所以我决定查一下 快速的Google搜索将我带到F1驱动程序。 在Wikipedia上进行搜索会导致印度出现种姓制度,而日本也有一些商品 堆栈溢出命中0个结果/programming//search?q=aguri site:stackoverflow.com/questions aguri 所以我终于将其链接回用户,看到他的博客上有链接 http://www.matasano.com/log/1009/aguri-coolest-data-structure-youve-never-heard-of/ 但这已经死了。 那么,这个Aguri数据结构是什么?如果它是真实的数据结构,为什么在其他任何地方都没有记录呢?

2
Unicode字符串的高效Trie实现
我一直在寻找有效的String trie实现。通常,我发现这样的代码: Java中的引用实现(每个维基百科) 我不喜欢这些实现主要有两个原因: 它们仅支持256个ASCII字符。我需要介绍西里尔字母。 它们的内存效率极低。 每个节点包含256个引用的数组,在Java的64位计算机上为4096字节。这些节点中的每个节点最多可以具有256个子节点,每个子节点具有4096字节的引用。因此,每个ASCII 2字符串的完整Trie要求超过1MB。三个字符串?256MB仅用于节点中的阵列。等等。 当然,我不打算在Trie中使用全部1600万个三个字符串,因此浪费了很多空间。这些数组中的大多数只是空引用,因为它们的容量远远超过了插入键的实际数量。而且,如果我添加unicode,数组会更大(char具有64k值,而不是Java中的256)。 有没有希望对字符串进行有效的尝试?我考虑了对这些类型的实现的一些改进: 除了使用引用数组之外,我还可以使用原始整数类型的数组,该数组将对大小与实际节点数接近的节点的引用数组进行索引。 我可以将字符串分成4位部分,这将允许以更大的树为代价允许大小为16的节点数组。
12 unicode  trie 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.