1. 程式人生 > >數據結構解決哈希沖突方法回顧

數據結構解決哈希沖突方法回顧

shm hash 開放定址 探測 數據 哈希沖突 散列 元素 結構

1、開放定址法:

  Hi=(H(key)+di)% m

  其中H(key)為哈希函數,m 為表長,di稱為增量序列。根據增量序列的取值方式不同,具體到下面三種散列方法:

  線性探測再散列:di=1,2,3,…,m-1

  二次探測再散列:di=1^2,-1^2,2^2,-2^2,…,k^2,-k^2 ( k<=m/2 )

  偽隨機探測再散列:di=偽隨機數序列

2、再哈希法:

  同時構造多個不同的哈希函數,當第一個哈希地址發生沖突的時候,用第二個哈希函數來計算……,直到沖突不再發生。

3、鏈地址法:

  相當於HashMap中還沒到閥值前的鏈表散列。

4、建立一個公共溢出區:

  將哈希表分為基本表和溢出表兩部分,凡是和基本表發生沖突的元素,一律放入溢出表。

數據結構解決哈希沖突方法回顧