數據結構--哈希表


概念:如果我們構造一個查找表,是數據源怒刷的存放位置和數據元素的關鍵字之間存在某種對應關系,則我們可以直接由數據元素的關鍵字得到該數據元素的存放位置,這樣的查找表就是哈希表

哈希函數:我們把數據元素的關鍵字和該數據元素的存放位置之間的映射函數稱為哈希函數(哈希表是通過哈希函數來確定數據元素存放位置的一種特殊表結構)

哈希沖突:對於兩個關鍵字Ki和kj他們的映射h(Ki)==h(Kj)這就叫做哈希沖突,也就是說不同關鍵字的兩個元素因為他們的哈希函數的運算結果而得到了哈希表中相同的位置映射

解決哈希沖突的基本思想:當哈希沖突時通過哈希沖突函數產生一個新的哈希地址使h1(Ki)!=h1(Kj)

個人比較喜歡用鏈表法,如果有相同的h(Ki)產生就在哈希表上的結點多加個指針域,把他們相同的全部放在一個鏈表上就好了

哈希表挺簡單的,簡單到你就可以當作是一個數組,然后里面放的數據是因為某種關系放的是固定的位置,所以對哈希表而言去查找數據會變的非常簡單,因為你直接按照關鍵字對應的哈希函數的位置映射在哈希表上面查找就好了,最快的查找速度可以達到O(1)


一致性哈希表:

目的:設計目標是為了解決因特網中的熱點(Hot spot)問題

http://blog.csdn.net/cywosp/article/details/23397179/






注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: