算法:一致性哈希算法 与 岛问题

工程师采用服务器集群实现数据缓存:

线性缓存区,key%N选择存放服务器,
缺点,增加或删除节点代价会很高,像数组一样,所有数据需要迁移。

环形缓存区,所有key取值首尾相接,顺时针计算,key存放距离最近的服务器,当插入新节点时,需要迁移的数据很少。
缺点,由于节点摆放位置不同,有可能造成节点负载不均衡。

一致性哈希算法,在环形缓存区上,设置大量虚拟节点,通过提高密度,来减少单一节点之间的差距,然后不同机器平分所有的虚拟节点。


matrix = 1 0 1 1 \n 1 0 1 1 \n 0 0 0 0 \n 1 0 1 0 \n

问有多少个联通的1块?

非并行算法,碰到一个1后,将所有与其联通的1全部变成2,然后继续遍历。

并行算法,将整个矩阵切割成数个小矩阵,每个矩阵分别计算联通块,记为sum,并对边界上的1所在的联通块标记唯一id,当小矩阵计算后,处理边界,当左右两个联通块对上时,将两个id合并(这里采用并查集来加速),并sum–。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值