哈希法中為什么會出現沖突 什么是哈希法?哈希法中為什么會出現沖突?
什么是哈希法?哈希法中為什么會出現沖突?哈希計算就是努力的把比較大的數據存放到相對較小的空間中。最常見的哈希算法是取模法。下面簡單講講取模法的計算過程。比如:數組的長度是5。這時有一個數據是6。那么如
什么是哈希法?哈希法中為什么會出現沖突?
哈希計算就是努力的把比較大的數據存放到相對較小的空間中。最常見的哈希算法是取模法。下面簡單講講取模法的計算過程。比如:數組的長度是5。這時有一個數據是6。那么如何把這個6存放到長度只有5的數組中呢。按照取模法,計算6%5,結果是1,那么就把6放到數組下標是1的位置。那么,7就應該放到2這個位置。到此位置,哈斯沖突還沒有出現。這時,有個數據是11,按照取模法,11%5=1,也等于1。那么原來數組下標是1的地方已經有數了,是6。這時又計算出1這個位置,那么數組1這個位置,就必須儲存兩個數了。這時,就叫哈希沖突。沖突之后就要按照順序來存放了。如果數據的分布比較廣泛,而且儲存數據的數組長度比較大。那么哈希沖突就比較少。否則沖突是很高的。具體的算法你要參照更加專業(yè)的書籍。