插入排序 算法描述:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3...
插入排序 算法描述:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3...
冒泡排序 算法描述:比较相邻元素,如果第一个数比第二个数大,则交换两个元素对每一对相邻元素做同样的比较,从开始第一对到结尾的最后一对,这样最后的元素应该是最大的数针对所有元素...
策略模式 定义一组算法,将每个算法都封装起来,使得它们之间可以相互替换。策略模式让算法独立于调用它的客户端而独立变化 包含角色 抽象策略(Strategy):通常由接口或抽象...
观察者模式 在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新类似于发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息...
健康检测 TCP心跳检查 interval:检测间隔时间fall:检测失败多少次后,后端服务器标识为不存活rise:检测成功多少次后,后端服务器标识为存活timeout:检测...
Consul服务注册与发现 Consul特性 服务注册 服务发现 故障检测 K/V存储 多数据中心:支持多数据中心 Raft算法:Consul使用Raft算法实现集群数据一致...
斐波拉契数组 递归实现 使用循环实现 时间复杂度为O(n) 扩展 一只青蛙一次可以跳上1级台阶,也可以跳上2级,求青蛙跳上一个n级的台阶总共有多少种跳法?分析:
单例模式 立即加载/饿汉模式 延迟加载/懒汉模式 第一版 存在不支持多线程问题 第二版 方法加关键字synchronized,存在效率低问题 第三版 针对某些重要的部分单独同...
ReentrantReadWriteLock类 读写锁表示有两个锁,一个是读操作相关的锁,称为共享锁;另一个写操作相关的锁,称为排它锁多个线程可以同时进行读取操作,但同一时刻...
ReentrantLock可重入锁 在Java多线程中,可以使用synchronized关键字来实现线程之间同步互斥,但在JDK1.5中新增加了ReentrantLock类也...
类ThreadLocal 变量值的共享可以使用public static变量的形式,所有线程都使用同一个public static变量如果想实现每一个线程都有自己的共享变量该...
join实现顺序执行线程 join()等待线程摧毁 join和synchronized区别 join在内部使用wait()方法进行等待synchronized关键字使用的是“...
素数 素数就是只能被1和其自身整除,且大于1的自然数RSA算法中用到大素数 判断n是否为素数,简单的方法是将n按顺序除以比2大的数字,看是否能被整除(n%m==0) 费马小定...
按之字形顺序打印二叉树 请实现一个函数按照之字顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,以此类推 分析:使...