算法
文章平均质量分 96
亮亮在江湖
One is never too old to learn!
展开
-
红黑树考究
红黑树是一种平衡二叉查找树,除了具备二叉查找树特性外还具备附加特性二叉查找树特性:1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。红黑树特性 :1、节点是黑色或者红色2、根节点是黑色3、每个叶子节点都是黑色的空节点(NIL节点)4、每个红色节点的两个子节点都是黑色5、从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点下面这棵树就是一颗典型的二叉树什么情况下会破坏红黑树的规则,什么.原创 2020-06-14 16:42:18 · 351 阅读 · 0 评论 -
23种设计模式之几种常用模式
设计模式的6大原则:1、单一职责原则 -----每个类应该实现单一的职责2、里氏替换原则------继承复用,增加新的行为3、依赖倒转原则------依赖抽象而不依赖具体4、接口隔离原则------使用多个隔离的接口5、迪米特法则--------只与直接的朋友通信,减少依赖6、合成复用原则------使用合成/聚合的方式,而不是使用继承创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式,共七种:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合原创 2020-06-09 20:00:12 · 1053 阅读 · 0 评论 -
十大经典排序算法详细总结(含JAVA代码实现)
冒泡排序冒泡排序是最简单的排序之一了,其大体思想就是通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡向上升一样,因此而得名。举个栗子,对5,3,8,6,4这个无序序列进行冒泡排序。首先从后向前冒泡,4和6比较,把4交换到前面,序列变成5,3,8,4,6。同理4和8交换,变成5,3,4,8,6,3和4无需交换。5和3交换,变成3,5,4,8,6,3.这样一次冒泡就完了,把最小...转载 2019-02-19 09:57:45 · 300 阅读 · 0 评论 -
手写算法代码,你准备好了吗
1、单例 饿汉式是类一加载进内存就创建好了对象;懒汉式是类加载进内存的时候,对象还没有存在,要使用该对象的时候再new出来*懒汉式是延迟加载,如果多个线程同时操作懒汉式时就有可能出现线程安全问题为解决饱汉式的线程安全问题,解决线程安全问题可以加同步来解决。但是加了同步之后,每一次都要比较锁,效率就变慢了,可以通过双重判断来提高程序效率。所谓“双重检查加锁”机制,指的是:并不是每次进入g...原创 2020-11-24 22:18:06 · 336 阅读 · 0 评论