trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串(但不僅限於字串),所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是:利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比雜湊表高。
trie樹的基本特徵:
1)根節點不包含字元,除根節點外每乙個節點都只包含乙個字元
2)從根節點到某一節點,路徑上經過的字元連線起來,為該節點對應的字串
3)每個節點的所有子節點包含的字元都不相同
4)按照(根節點)→(t)→(to)的順序搜尋。如果我們要找的單詞是「too」,但「to」的子節點為null,則判斷要查詢的字串不存在
那假如我們需要統計的是全英文的集合,根節點的子節點就可以是26個英文本母
trie樹的應用:
2)字串檢索
i:如某詞典存在1w個敏感詞,這些敏感詞都不允許出現在頁面上。現有一段使用者輸 入文字,要判斷其中是否存在敏感詞,如有則進行遮蔽。則若使用者輸入「abcdefg」且詞典中記錄了「cde」,則會被替換為「ab***ef」
ii:如有1000w字串,其中存在重複,要求去重
3)排序:如給出一系列單詞,要求按照字典順序輸出。那只需將所有單詞輸入trie樹,並深度遍歷即可。(注,這裡必須在每個作為單詞結尾出現的節點上做標記。比如存在abc,abcd,abcdef三個單詞,那我們需在c,d,f所在的節點都做好標記,證明此處是某個單詞的結尾)
trie樹的實現:
public class trie
private class trienode
}//建立字典樹
public void insert(stringstr)
trienode node=root;
char letters=str.tochararray();
for(inti=0,len=str.length();i
trie樹 應用於統計和排序
1.什麼是trie樹 trie樹 又稱單詞查詢樹 字典樹 是一種 樹形結構 是一種雜湊樹的變種,是一種用於快速檢索的多叉樹結構。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表 高。trie的核心思...
Trie樹 應用於統計和排序
1.什麼是trie樹 trie樹 又稱單詞查詢樹 字典樹 是一種 樹形結構 是一種雜湊樹的變種,是一種用於快速檢索的多叉樹結構。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表 高。trie的核心思...
Trie樹 應用於統計和排序
1.什麼是trie樹 trie樹 又稱單詞查詢樹 字典樹 是一種 樹形結構 是一種雜湊樹的變種,是一種用於快速檢索的多叉樹結構。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表 高。trie的核心思...