雜湊表也叫雜湊表,hash表是一種根據關鍵字值(key - value)而直接進行訪問的資料結構。是把記錄的儲存位置和記錄的關鍵字之間建立對應關係的一種儲存結構。
雜湊表又叫 雜湊表,速度很快,最常用的一種儲存機構是順序表+鍊錶的結構;主結構是順序表,每個順序表中的元素又對應一張鍊錶。
雜湊表的常用資料結構如下圖:
雜湊表的插入、刪除和查詢等操作都會用到雜湊函式,雜湊函式的計算速度直接影響雜湊表的效能。
常用的雜湊函式 包括 直接定址法、除留餘數法、數字分析法、平方取中法、摺疊法和隨機數法等。
下面以除留餘數法為例說明雜湊表的常用操作:
先計算資料的雜湊碼(呼叫hashcode()方法),再計算在雜湊表中的位置,最後存入雜湊表。
和新增資料的過程是相同的,先求hashcode,再根據hash值,找到儲存位址,比如 找67 ,67% 11 =1 ,找到hash 值=1的儲存位置,找到鍊錶,依次找到23,34後面的就是67
不同key值產生相同的位址,h(key1)=h(key2),就產生了雜湊衝突,
解決hash衝突有以下幾個常用的方法 :
1.開放定製法
2.鏈位址法 (拉鍊法),這個比較常用的
3.公共溢位區法
建立乙個特殊儲存空間,專門存放衝突的資料。此種方法適用於資料和衝突較少的情況。
4.再雜湊法
準備若干個hash函式,如果使用第乙個hash函式發生了衝突,就使用第二個hash函式,第二個也衝突,使用第三個,以此類推
資料結構與演算法 雜湊表
對映在數學上相當於乙個函式f x a b。雜湊表的核心是乙個雜湊函式 hash function 這個函式規定了集合a中的元素如何對應到集合b中的元素。根據設定的雜湊函式 h key 和處理衝突的方法 將一組關鍵字映像到乙個有限的連續的位址集 區間 上,並以關鍵字在位址集中的 像 作為相應記錄在表中...
資料結構與演算法 雜湊表
雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。如下圖,定義了16個陣列,每個陣列用來存放一條鍊錶.在插入資料時,首先...
資料結構與演算法 雜湊函式與雜湊表
1.雜湊函式的特點 1 理論上輸入域是無窮大的,輸出域是固定的。2 雜湊一般是16位的,每一位是0 9 a f 的隨機數所以一共16的16次方種也就是2 64種 3 雜湊函式輸出的值會均勻分布。比如說輸入域是0 98,輸出域是0 2,我們輸入99個數字,那麼所有輸入的值 3後,0 1 2後面基本都有...