hash算法的实现原理,hashcode的实现原理趣解

来源:互联网 发布:st单片机涨价 编辑:程序博客网 时间:2024/05/30 22:59
这个问题有点难度,不是很好说清楚。 

我来做一个比喻吧。 
我们有很多的小猪,每个的体重都不一样,假设体重分布比较平均(我们考虑到公斤级别),我们按照体重来分,划分成100个小猪圈。 
然后把每个小猪,按照体重赶进各自的猪圈里,记录档案。 

好了,如果我们要找某个小猪怎么办呢?我们需要每个猪圈,每个小猪的比对吗? 
当然不需要了。 

我们先看看要找的这个小猪的体重,然后就找到了对应的猪圈了。 
在这个猪圈里的小猪的数量就相对很少了。 
我们在这个猪圈里就可以相对快的找到我们要找到的那个小猪了。 

对应于hash算法。 
就是按照hashcode分配不同的猪圈,将hashcode相同的猪放到一个猪圈里。 
查找的时候,先找到hashcode对应的猪圈,然后在逐个比较里面的小猪。 

所以问题的关键就是建造多少个猪圈比较合适。 

如果每个小猪的体重全部不同(考虑到毫克级别),每个都建一个猪圈,那么我们可以最快速度的找到这头猪。缺点就是,建造那么多猪圈的费用有点太高了。 

如果我们按照10公斤级别进行划分,那么建造的猪圈只有几个吧,那么每个圈里的小猪就很多了。我们虽然可以很快的找到猪圈,但从这个猪圈里逐个确定那头小猪也是很累的。 

所以,好的hashcode,可以根据实际情况,根据具体的需求,在时间成本(更多的猪圈,更快的速度)和空间本(更少的猪圈,更低的空间需求)之间平衡。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 绿萝中间太密了怎么办 苹果mac密码忘了怎么办 mac锁屏密码忘了怎么办 剑三头发飞起来怎么办 苹果6p开不了机怎么办 苹果6p黑屏了怎么办 肚子胀反胃想吐怎么办 脸上干皮特别多怎么办 月光足还不了款怎么办 孩子不爱和小朋友玩怎么办 不知道怀孕抽烟了怎么办 校园欺凌来了该怎么办 拉的屎是绿色的怎么办 生完孩子痔疮痛怎么办 生过孩子脱肛该怎么办 生完宝宝有痔疮怎么办 毎次大便都脱肛怎么办 怀孕快生了便秘怎么办 35周孕晚期便秘怎么办 怀孕了老公出轨了怎么办 婆婆跟老公睡了怎么办 婆婆和老公互黏怎么办 15岁就掉头发怎么办 24岁经常掉头发怎么办 舍友打游戏太吵怎么办 家里的地砖想换怎么办 墙上的瓷砖掉了怎么办 瓷砖掉了一块瓷怎么办 白色裙子太透了怎么办 剑三石头插错了怎么办 四六级证书丢了怎么办 当月发票冲红了怎么办 当月发票红冲了怎么办 作废的发票扔了怎么办 发票公章盖错了怎么办 发票章盖的模糊怎么办 下的电影没字幕怎么办 荣耀8下载东西慢怎么办 考科目二下大雨怎么办 不求上进的人怎么办 连锁经营投的钱怎么办