程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 數據結構與算法07 之哈希表

數據結構與算法07 之哈希表

編輯:C#入門知識

數據結構與算法07 之哈希表


哈希表也稱為散列表,是根據關鍵字值(key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵字值映射到一個位置來訪問記錄,以加快查找的速度。這個映射函數稱為哈希函數(也稱為散列函數),映射過程稱為哈希化,存放記錄的數組叫做散列表。比如我們可以用下面的方法將關鍵字映射成數組的下標:arrayIndex = hugeNumber % arraySize。

哈希化之後難免會產生一個問題,那就是對不同的關鍵字,可能得到同一個散列地址,即同一個數組下標,這種現象稱為沖突,那麼我們該如何去處理沖突呢?一種方法是開放地址法,即通過系統的方法找到數組的另一個空位,把數據填入,而不再用哈希函數得到的數組下標,因為該位置已經有數據了;另一種方法是創建一個存放鏈表的數組,數組內不直接存儲數據,這樣當發生沖突時,新的數據項直接接到這個數組下標所指的鏈表中,這種方法叫做鏈地址法。下面針對這兩種方法進行討論。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved