![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计
飞雪擦枪
这个作者很懒,什么都没留下…
展开
-
synchronized与volatile关键字的区别
一、synchronized关键字 1.1 synchronized如何实现内存可见性 线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值 线程解锁时,必须把共享变量的最新值刷新到主内存中。 1.2 synchronized线程执行互斥代码的六个过程 获得互斥锁 清空工作内存 从主内存中拷贝变量的最新值到工作内存 执行代码 将更改后的共享变量的值刷新到主内存...原创 2020-03-02 17:49:09 · 642 阅读 · 0 评论 -
布隆过滤器的原理及实现
一、布隆过滤器的工作原理 布隆过滤器本身是一个很长的二进制向量,既然是二进制的向量,那么显而易见的,存放的不是0,就是1。 新建一个16位的布隆过滤器,如图 有一个对象,我们通过 方式一计算他的hash值,得到hash = 2 方式二计算他的hash值,得到hash = 9 方式三计算他的hash值,得到hash = 5 通过三个方法计算得到三个数值,我们把这三个数值对应的布隆过滤器向量值改为1...原创 2020-03-02 17:39:42 · 1090 阅读 · 0 评论 -
算法专栏--递归实现“岛问题”
一、问题描述 二、解决方案 遍历整个二维表,当发现二维表中某个节点的值为1时,开始感染,执行 infect(int[][] m, int i, int j, int N, int M),i,j表示坐标,N,M表示二维表的边界排除掉不满足条件的节点,再次递归,直到感染了所有相邻的节点,此时感染掉的节点数值置为2,所以infect被触发了几次就说明有几个“岛” 三、实现 public class P...原创 2020-02-20 18:00:02 · 271 阅读 · 0 评论