数据结构之Radix和Trie

数据结构可视化演示链接,也就是视频中的网址

Radix树:压缩后的Trie树

  • Radix叫做基数树(压缩树),就是有相同前缀的字符串,其前缀可以作为一个公共的父节点。
  • 同时在具体存储上,Radix树的处理是以bit(或二进制数字)来读取的。一次被对比r个bit。

Radix树演示

Trie树

即字典树,也有的称为前缀树,是一种树形结构。广泛应用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是最大限度地减少无谓的字符串比较,查询效率比较高。
Trie的核心思想是空间换时间,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。

Trie树演示

从上面可以看出:
 1. 每一个节点代表一个字符
 2. 有相同前缀的单词在树中就有公共的前缀节点。
 3. 整棵树的根节点是空的。
 4. 每个节点结束的时候用一个特殊的标记来表示,从根节点到特殊的标记所经过的所有的节点对应一个英文单词。
 5. 查询和插入的时间复杂度为O(k),k为字符串长度,当然如果大量字符串没有共同前缀时还是很耗内存的。

总的来说,Trie树把很多的公共前缀独立出来共享了。这样避免了很多重复的存储。想想字典集的方式,一个个的key被单独的存储,即使他们都有公共的前缀也要单独存储。相比字典集的方式,Trie树显然节省更多的空间。

Trie树其实依然比较浪费空间,比如:如果大量字符串没有共同前缀时。

相关推荐

  1. 数据结构RadixTrie

    2024-01-09 10:04:04       47 阅读
  2. Python高级数据结构——字典树(Trie

    2024-01-09 10:04:04       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-09 10:04:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-09 10:04:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-09 10:04:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-09 10:04:04       20 阅读

热门阅读

  1. Go语言中的秘密武器:魔力般的Map数据结构解密

    2024-01-09 10:04:04       39 阅读
  2. 小程序this.setData修改对象、数组中的值

    2024-01-09 10:04:04       40 阅读
  3. Pytorch:torch.nn.Module.apply用法详解

    2024-01-09 10:04:04       41 阅读
  4. PyTorch 中的批量规范化

    2024-01-09 10:04:04       29 阅读
  5. GPT-4:人工智能的新纪元与未来的无限可能

    2024-01-09 10:04:04       34 阅读
  6. 算法训练营Day40(动态规划)

    2024-01-09 10:04:04       34 阅读
  7. 在 PyCharm 中运用 GitHub Copilot 的详细指南

    2024-01-09 10:04:04       37 阅读
  8. 笙默考试管理系统-MyExamTest----codemirror(63)

    2024-01-09 10:04:04       32 阅读
  9. 机器学习 -决策树的案例

    2024-01-09 10:04:04       44 阅读