hash算法 simhash算法


hash算法 simhash算法

文章插圖
大家好,小跳來為大家解答以上的問題 。simhash算法,hash算法這個很多人還不知道,現在讓我們一起來看看吧!
1、這個問題有點難度 , 不是很好說清楚 。
2、 我來做一個比喻吧 。
3、 我們有很多的小豬,每個的體重都不一樣,假設體重分布比較平均(我們考慮到公斤級別) , 我們按照體重來分,劃分成100個小豬圈 。
4、 然后把每個小豬,按照體重趕進各自的豬圈里,記錄檔案 。
5、 好了,如果我們要找某個小豬怎么辦呢?我們需要每個豬圈 , 每個小豬的比對嗎? 當然不需要了 。
6、 我們先看看要找的這個小豬的體重,然后就找到了對應的豬圈了 。
7、 在這個豬圈里的小豬的數量就相對很少了 。
8、 我們在這個豬圈里就可以相對快的找到我們要找到的那個小豬了 。
9、 對應于hash算法 。
10、 就是按照hashcode分配不同的豬圈,將hashcode相同的豬放到一個豬圈里 。
11、 查找的時候 , 先找到hashcode對應的豬圈,然后在逐個比較里面的小豬 。
12、 所以問題的關鍵就是建造多少個豬圈比較合適 。
13、 如果每個小豬的體重全部不同(考慮到毫克級別),每個都建一個豬圈,那么我們可以最快速度的找到這頭豬 。
14、缺點就是 , 建造那么多豬圈的費用有點太高了 。
15、 如果我們按照10公斤級別進行劃分,那么建造的豬圈只有幾個吧 , 那么每個圈里的小豬就很多了 。
16、我們雖然可以很快的找到豬圈,但從這個豬圈里逐個確定那頭小豬也是很累的 。
17、 所以,好的hashcode,可以根據實際情況,根據具體的需求,在時間成本(更多的豬圈,更快的速度)和空間本(更少的豬圈,更低的空間需求)之間平衡 。
【hash算法 simhash算法】本文到此分享完畢,希望對大家有所幫助 。