字典樹和hash

Trie樹,即字典樹,又稱單詞查找樹或鍵樹,是一種樹形結構,是一種哈希樹的變種。

典型應用是用于統計和排序大量的字符串(但不僅限于字符串)。

它的優點是:最大限度地減少無謂的字符串比較,查詢效率比哈希表高。Trie的核心思想是空間換時間。利用字符串的公共前綴來降低查詢時間的開銷以達到提高效率的目的。

它有3個基本性質:

? ? 1.根節點不包含字符,除根節點外每一個節點都只包含一個字符。

? ? 2.從根節點到某一節點,路徑上經過的字符連接起來,為該節點對應的字符串。

? ? 3.每個節點的所有子節點包含的字符都不相同。

注意:不用動態數組或者動態申請空間的話復雜度會達到26^n次方,在建樹的時候最好用動態數組和malloc鏈表。最好不要用結構體進行封裝,有可能會爆棧。

查詢復雜度與樹高有關,基本O(len)

Hash:

hash算法的意義在于提供了一種快速存取數據的方法,它用一種算法建立鍵值與真實值之間的對應關系,(每一個真實值只能有一個鍵值,但是一個鍵值可以對應多個真實值),這樣可以快速在數組等條件中里面存取數據,其實就是一種映射。

Hash最重要就是Hash映射和沖突處理,

Hash可以拿來判重和統計數目,主要把字符串映射為整數,盡量選比較大的素數。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 教你如何迅速秒殺掉:99%的海量數據處理面試題 本文經過大量細致的優化后,收錄于我的新書《編程之法》第六章中,新書...
    Helen_Cat閱讀 7,455評論 1 39
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx?那么一定聽過它的“同行”Apache吧!Ngi...
    JokerW閱讀 32,795評論 24 1,002
  • 1 序 2016年6月25日夜,帝都,天下著大雨,拖著行李箱和同學在校門口照了最后一張合照,搬離寢室打車去了提前租...
    RichardJieChen閱讀 5,152評論 0 12
  • 聲音是人類裸露的靈魂。 生活中留給別人的印象,55%來自你的穿著打扮、身材、儀態等等,38%的第一印象就來自于你的...
    wzs33閱讀 3,160評論 1 19
  • 過去 世界充滿憧憬, 生活看似簡單, 夢想更為接近, 事物更為親近。 此刻 現在的你是否活的灑脫? 現在的你是否活...
    白襯衫的溫度閱讀 252評論 0 3