何爲哈希(hash)?

What is Hash?(什麼是哈希)

Hash, 是“散列”的意思,就是把任意長度的輸入(預映射, pre-image),通過散列算法,變換成固定長度的輸出,那麼輸出的就是散列值。簡單來說,Hash就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數

Hash Algorithm(哈希算法)

舉個簡單的例子,比如家裏來了一摞書,沒有按照順序就放在了書架上,看似很整齊,但是當你去查找哪一本書的時候,你可能就會頭大了。因爲這麼多書,沒有一定規則存放,要找具體哪一本書非常地費時,有時候還未必能找到。就在你一籌莫展的時候,你母親進來了,幫你把所有的書,全部拿出來,先按書的類別進行分類,有歷史、人文、科普、計算機專業、土木工程專業、攝影等類別,放在不同的分區。雖然分類的過程花費的時間比隨意亂放要長很多,但是你按一定規則擺放書籍之後,以後能更快地的找到你想要的具體拿一本書,因而提高了查找效率。

以上的例子是哈希算法應用於生活的一個十分常見的例子。也就是說,通過哈希算法,我們能按一定的規範存儲數據,目的就是給數據定位,以便於之後查找。這是哈希算法的核心價值所在。不過,沒有一樣東西是完美的,算法也不例外。就像擺放書籍這個例子一樣,雖然按照了一定規則去擺放書籍,方便查找,但是按某種規則去防止書籍的過程缺花費了不少的時間。那也就是說,哈希算法,

優點:查找數據快;

缺點:插入數據慢。

發佈了36 篇原創文章 · 獲贊 111 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章