數據結構-哈希表(散列表)

哈希表 是惟一一個專用於集合的數據結構。能夠以常量的平均時間實現插入,刪除和查找數組

哈希表的時間複雜度是 O(1)數據結構

哈希表的思想是 用一個與集合差很少大小的數組來存儲這個集合,將數據元素的關鍵字映射的數組的下標上面,這個映射咱們稱之爲 散列函數   數組稱之爲 散列表,查找數據的時候,根據被查找的關鍵字找到存儲數據元素的地址,從而獲取元素函數

 散列函數的應用帶來一個比較複雜的問題:;設計

由於散列函數的定義域範圍比值域大 致使2個或者更多的數據元素可能會被映射到同一個位置  稱爲 衝突或者碰撞。這種狀況是不可避免的。所以 實現哈希表 二個基本的問題是hash

1如何設計散列函數 io

2如何解決碰撞問題table

 

解決哈希碰撞的幾種方法:方法

1:開放地址法數據

2:在哈希法  C# hashtabledict

3: 鏈地址法  C#  dictionary

4:創建一個公共溢出區