double-array-trie双数组trie树原理解析和数据构建过程

本文深入探讨double-array trie树的原理,从其在文本分词和模糊匹配中的应用出发,详细解释了从triple-array到double-array的优化过程。通过分析构建步骤,包括初始状态、逐步构建等阶段,阐述了按列构建优于按行构建的原因,并解释了为何在构建过程中采用树结构作为辅助数据结构。
摘要由CSDN通过智能技术生成

本文主要是对double-array实际实现时的一些概念和逻辑进行自己的解释, 有误请指点. coolkissmile@gmail.com

 

trie树的作用

常用的高效查询检索数据结构

double-array用途:  文本分词, 模糊匹配检索, 精确匹配检索

 

triple-array-trie 三数组trie树

网上很多资料, 可以自己搜索,  基本原理的介绍不是本文的重点
http://blog.jqian.net/post/trie.html

本文也是建立在你已经了解了基本原理的基础上, 所以请首先了解下上面的内容, 或者如下原文:

 

http://linux.thai.net/~thep/datrie/datrie.html

 

 

 

 

 

 

double-array双数组trie树

double-array是由 triple-array 进行空间压缩和优化得来的, 那么是基于什么原理分析出三数组可以压缩为双数组的呢?

 

核心概念解释

不管是 算法原理还是具体实际编程实现的时候都涉及到几个概念

    * 数据如何表示:  要构建的数据被分割为多个字符, 比如 a-z, 每个字符都进行数据编号, 
这个编号就是作为寻找内存空间时的增量偏移来使用, 不同的字符编号不同
    * 中文如何表示: 理论上中文可以用穷举的方式进行编号, 比如1-65535, 
但是实际上一个中文字符是被当做两个字节看待的, 这样就可以把中文的字符编码降维到 ascii码的数量级
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值