十分钟学会哈希表
一、為什么會有哈希表?
是想不通過比較就能找到表中的關鍵字
二、用的什么方法?
建立關鍵字與其位置的函數(哈希函數)
三、有什么問題?
不同的關鍵字通過哈希函數可能會產生相同的位置(產生沖突)
四、怎么解決?
按某種規則,把產生沖突的關鍵字放在其他位置上(處理沖突)
五、怎么構建哈希表?
建立哈希函數。最常用的構造方法是除留系數法
產生沖突的關鍵字地址 = key Mod p (p<=表長且為質數)
六、怎么處理沖突?
1.開放定址法
即從沖突位置前后尋找可以存放記錄的空閑單元
對于增量d:
2.再哈希法
選擇若干個哈希函數,這個不行用另一個
3.溢出區法
創建專門的溢出表,來存放產生沖突的關鍵字
4.鏈地址法
用數組+鏈表式的存儲結構
七、性能分析
裝載因子
ASL(平均查找長度)
只與 裝載因子和處理沖突的方法 有關
計算圖中哈希表的ASL
總結
- 上一篇: 通俗理解卡尔曼滤波
- 下一篇: 考前自学系列·计算机组成原理·微程序微指