信息檢索——初識Trie樹

一、概述html

  Trie樹( /tri:/ ),又稱前綴樹、字典樹,是種快速檢索的多叉樹結構,算法

 

Trie樹的基本性質能夠概括爲:數組

(1)根節點不包含字符,除根節點意外每一個節點只包含一個字符。數據結構

(2)從根節點到某一個節點,路徑上通過的字符鏈接起來,爲該節點對應的字符串。性能

(3)每一個節點的全部子節點包含的字符串不相同。 優化

二、Trie基本實現spa

  基本操做包括插入、刪除、查找等。3d

  考慮到一般用於字典等內存較大的狀況,應該加入序列化,分割等操做。orm

三、應用htm

       接觸這一數據結構是由於分詞處理中的字典存儲問題,對這一問題Trie無心是一個足夠高效的數據結構,採用以空間換時間的方式,提供了良好的查找性能。此外還有一下應用:

1)字符串最長公共前綴

2)排序

  先序遍歷整棵樹就是字典序的排序輸出。

3)做爲其餘數據結構或算法的輔助結構

  如AC自動機、後綴樹等

四、優化

  基本結構的插入、查找時間複雜度爲O(N),N爲字符串長度

   空間複雜度爲和字典中字符種類的多少,串的長度有關。

主要優化方法有二分法、基數樹、雙數組等。具體性能能夠參見《幾種Trie樹性能比較》

 

參考資料

(1)博客 《數據結構之Trie樹http://dongxicheng.org/structure/trietree/

 

(2)博客 《幾種Trie樹性能比較》http://www.hankcs.com/nlp/performance-comparison-of-several-trie-tree.html

(3)wiki Trie https://en.wikipedia.org/wiki/Trie

相關文章
相關標籤/搜索