Radix树演示
即字典树,也有的称为前缀树,是一种树形结构。广泛应用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是最大限度地减少无谓的字符串比较,查询效率比较高。
Trie的核心思想是空间换时间,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。
Trie树演示
从上面可以看出:
1. 每一个节点代表一个字符
2. 有相同前缀的单词在树中就有公共的前缀节点。
3. 整棵树的根节点是空的。
4. 每个节点结束的时候用一个特殊的标记来表示,从根节点到特殊的标记所经过的所有的节点对应一个英文单词。
5. 查询和插入的时间复杂度为O(k),k为字符串长度,当然如果大量字符串没有共同前缀时还是很耗内存的。
总的来说,Trie树把很多的公共前缀独立出来共享了。这样避免了很多重复的存储。想想字典集的方式,一个个的key被单独的存储,即使他们都有公共的前缀也要单独存储。相比字典集的方式,Trie树显然节省更多的空间。
Trie树其实依然比较浪费空间,比如:如果大量字符串没有共同前缀时。