分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!
原貼:雙陣列trie樹原理
摘要:本文介紹了一種新的內部(內部排序的內部,也就是在記憶體裡)陣列結構的digital search演算法,叫做雙陣列,結合了陣列訪問的快速和鏈式儲存的壓縮。digital search樹的每一條弧在雙陣列中都可以以o(1)的時間複雜度計算得到;也就是說,查詢乙個key值最壞的時間複雜度是o(k),k是這個key值的長度。本文給出了同時具有速度和空間雙重效能的雙陣列的查詢,插入,刪除演算法。假設雙陣列的長度是n+cm,n是ds樹中節點的數量,m是輸入符號的數量,c是乙個依賴於實現的常數;那麼理論上可以證明插入和刪除的最壞時間複雜度分別是cm2(插入要解決衝突,所以慢)和cm,與n沒有關係。從實驗的結果來看,建立雙陣列的時間隨n增長,並且c是乙個相當小的常數,從0.17到1.13。
---
1. 導論
在很多資訊檢索演算法中,很需要採用一種快速的digital search演算法,或者叫做trie搜尋,因為它乙個字元(digital)一 個字元地檢視輸入。使用這種資料結構的例子有一種詞法分析器,和一種編譯器的本地**優化器,一種圖書搜尋,拼寫檢查,常用單詞過濾器,一種自然語言處理 中的形態學分析器等等。詞典能夠動態增長在自然語言處理中尤為重要,因為經常需要對詞彙表新增新詞(這其實是雙陣列的弱項- -)。本文展示的這一演算法適合插入遠遠多於刪除的情況,這樣刪除帶來的空間浪費就可以由插入來填補。
給我老師的人工智慧教程打call!
雙陣列trie原理
一 基本構造 trie樹是搜尋樹的一種,來自英文單詞 retrieval 的簡寫,可以建立有效的資料檢索組織結構,是中文匹配分詞演算法中詞典的一種常見實現。它本質上是乙個確定的有限狀態自動機 dfa 每個節點代表自動機的乙個狀態。在詞典中這此狀態包括 詞字首 已成詞 等。雙陣列trie double...
雙陣列trie原理
分類 演算法 2012 05 01 11 30 278人閱讀收藏 舉報character c資料結構 input 演算法儲存 雙數 組 trie double arraytrie 的資料結構是兩個整數陣列,乙個是base,乙個是check 這個演算法的本質就是將trie樹結構簡化為兩個線性陣列,如圖...
雙陣列trie樹
雙陣列trie double arraytrie 是trie樹的乙個簡單而有效的實現,由兩個整數陣列構成,乙個是base,另乙個是check。設陣列下標為i,如果base i check i 均為0,表示該位置為空。如果base i 為負值,表示該狀態為詞語。check i 表示該狀態的前一狀態,t...