當前位置:編程學習大全網 - 編程軟體 - 什麽是哈希表和哈希算法?

什麽是哈希表和哈希算法?

哈希算法並不是壹個特定的算法而是壹類算法的統稱。哈希算法也叫散列算法,壹般來說滿足這樣的關系:f(data)=key,輸入任意長度的data數據,經過哈希算法處理後輸出壹個定長的數據key。同時這個過程是不可逆的,無法由key逆推出data。如果是壹個data數據集,經過哈希算法處理後得到key的數據集,然後將keys與原始數據進行壹壹映射就得到了壹個哈希表。壹般來說哈希表M符合M[key]=data這種形式。哈希表的好處是當原始數據較大時,我們可以用哈希算法處理得到定長的哈希值key,那麽這個key相對原始數據要小得多。我們就可以用這個較小的數據集來做索引,達到快速查找的目的。稍微想壹下就可以發現,既然輸入數據不定長,而輸出的哈希值卻是固定長度的,這意味著哈希值是壹個有限集合,而輸入數據則可以是無窮多個。那麽建立壹對壹關系明顯是不現實的。所以"碰撞"(不同的輸入數據對應了相同的哈希值)是必然會發生的,所以壹個成熟的哈希算法會有較好的抗沖突性。同時在實現哈希表的結構時也要考慮到哈希沖突的問題。密碼上常用的MD5,SHA都是哈希算法,因為key的長度(相對大家的密碼來說)較大所以碰撞空間較大,有比較好的抗碰撞性,所以常常用作密碼校驗。

麻煩采納,謝謝!

  • 上一篇:自動化類包括哪些專業?
  • 下一篇:全站儀放線儀高棱鏡高問題
  • copyright 2024編程學習大全網