信息檢索——初識Trie樹
阿新 • • 發佈:2017-06-27
操作 font -c 字符 get 排序 span strong trietree
1、概述
Trie樹( /tri:/ ),又稱前綴樹、字典樹,是種快速檢索的多叉樹結構,
Trie樹的基本性質可以歸納為:
(1)根節點不包含字符,除根節點意外每個節點只包含一個字符。
(2)從根節點到某一個節點,路徑上經過的字符連接起來,為該節點對應的字符串。
(3)每個節點的所有子節點包含的字符串不相同。
2、Trie基本實現
基本操作包括插入、刪除、查找等。
考慮到通常用於字典等內存較大的情況,應該加入序列化,分割等操作。
3、應用
接觸這一數據結構是因為分詞處理中的字典存儲問題,對這一問題Trie無意是一個足夠高效的數據結構,采用以空間換時間的方式,提供了良好的查找性能。此外還有一下應用:
1)字符串最長公共前綴
2)排序
先序遍歷整棵樹就是字典序的排序輸出。
3)作為其他數據結構或算法的輔助結構
如AC自動機、後綴樹等
4、優化
基本結構的插入、查找時間復雜度為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
信息檢索——初識Trie樹