![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 73
dengjili
一个人在党性、真诚、智慧三样东西中,只可能拥有两样
update by 2022/2/9
同时拥有党性、真诚、智慧,已经不是普通人
展开
-
机器学习介绍
机器学习是人工智能的一个实现途径深度学习是机器学习的一个方法发展而来。原创 2023-02-08 21:24:14 · 396 阅读 · 1 评论 -
二叉树的介绍
二叉树的定义二叉树(Binary Tree)是一种树型结构,每个结点至多只有两棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的子树有左右之分,其次序不能任意颠倒。二叉树的性质在二叉树的第i层上至多有2的i-1次方个结点(i>=1)如图所示,第一层最多1个,第二层最多2个,等等深度为k的二叉树至多有2的k次方-1个结点(k>=1)如图所示,其实就是性质1的每层相加得到总结点树,如果为2的三次方-1=7个结点对任何一棵二叉树T,如果其终端结点数为m,度为2的结点原创 2021-04-07 21:42:02 · 547 阅读 · 0 评论 -
几种常见的内排序-java代码实现
由于面试中,排序基本上必问知识,故总结一下常见排序算法实现插入排序插入排序原理国外直接插入排序演示,点击按钮Insertion Sort国内直接插入排序演示`,推荐代码实现在这里插入代码片2路插入排序希尔排序交换排序冒泡排序选择排序归并排序...原创 2021-04-06 01:24:43 · 130 阅读 · 0 评论 -
红黑树的删除理论讲解-多图
红黑树定义每个节点要么红要么黑根节点是黑色每个叶子节点都是黑色(叶子是NULL节点表示 或 NIL节点表示)。如果一个节点是红色的,那么它的子节点必须是黑色的子节点。(即不存在两个连续的红色节点)从任一节点到其每个叶子结点(NULL节点或 NIL节点)的所有简单路径都包含相同数目的黑色节点。红黑树的删除算法分析【约定一:新增节点一定是红色节点】。若是黑色节点,每次新增黑子叶子节点,根到叶子节点的路径上黑节点多1个黑色节点,违背了性质5;如下图所示:若插入红色节点,只需要调整父结点为红色情原创 2021-02-01 11:30:17 · 613 阅读 · 3 评论 -
红黑树一次完整的插入数据过程-图解
上一篇文章,我们对红黑树的插入进行了java代码实现,参考:https://blog.csdn.net/dengjili/article/details/113204943其中使用了测试数据4, 1, 2, 5, 0, 7, 9, 8, 3, 6public class RBTreeTest { public static void main(String[] args) { int nums[] = { 4, 1, 2, 5, 0, 7, 9, 8, 3, 6}; RBTree tree =原创 2021-01-27 17:06:41 · 532 阅读 · 1 评论 -
红黑树的插入-java代码实现
本文基于上一博客红黑树的插入理论讲解-多图进行代码实现,若代码有疑问,可以结合上文。实现定义颜色public enum Color { BLACK, RED;}定义节点public class RBNode { private int value; private RBNode left; private RBNode right; private RBNode parent; private Color color = Color.BLACK; // setter getter原创 2021-01-27 10:11:35 · 215 阅读 · 1 评论 -
红黑树的插入理论讲解-多图
红黑树定义每个节点要么红要么黑根节点是黑色每个叶子节点都是黑色(叶子是NULL节点表示 或 NIL节点表示)。如果一个节点是红色的,那么它的子节点必须是黑色的子节点。(即不存在两个连续的红色节点)从任一节点到其每个叶子结点(NULL节点或 NIL节点)的所有简单路径都包含相同数目的黑色节点。红黑树的插入算法分析【约定一:新增节点一定是红色节点】。若是黑色节点,每次新增黑子叶子节点,根到叶子节点的路径上黑节点多1个黑色节点,违背了性质5;如下图所示:若插入红色节点,只需要调整父结点为红色情原创 2021-01-26 17:45:44 · 234 阅读 · 0 评论 -
红黑树的理论介绍,认识红黑树
红黑树与二叉平衡树比较红黑树与二叉平衡树(AVL树)一样,也是自平衡二叉排序树。作用类似,但是比二叉平衡树更具有优势,会减少自平衡次数,实际应用中,也是使用红黑树,而不是二叉平衡树。红黑树相对于二叉平衡树来说,牺牲了部分平衡性以换取插入/删除操作时少量的旋转操作,整体来说性能要优于二叉平衡树红黑树定义红黑树特性:每个节点要么红要么黑根节点是黑色每个叶子节点都是黑色(叶子是NULL节点表示 或 NIL节点表示)。如果一个节点是红色的,那么它的子节点必须是黑色的子节点。(即不存在两个连续的红色原创 2021-01-26 00:33:41 · 172 阅读 · 0 评论 -
TreeMap方法successor/predecessor图解
方法功能介绍TreeMap遍历算法属于二叉排序树范畴二叉树:https://blog.csdn.net/dengjili/article/details/111350037二叉排序树参考:https://blog.csdn.net/dengjili/article/details/111503799根据二叉树前序遍历,假设遍历结果为,a、b、c、d;当前节点为c那么前驱节点为b;后驱节点为d对应方法分别如下successor,寻找当前节点后驱节点predecessor,寻找当前节点前驱原创 2021-01-23 18:13:34 · 1954 阅读 · 2 评论 -
平衡二叉树-java代码实现
资料引入说明平衡二叉树理论知识参考:https://blog.csdn.net/dengjili/article/details/111463328二叉排序树理论知识参考:https://blog.csdn.net/dengjili/article/details/111503799二叉排序树-java代码实现:https://blog.csdn.net/dengjili/article/details/111992147平衡二叉树是在二叉排序树代码基础上进行平衡的,这里直接使用了二原创 2021-01-19 21:19:22 · 425 阅读 · 2 评论 -
二叉排序树-java代码实现
理论知识参考:https://blog.csdn.net/dengjili/article/details/111503799定义节点public class Node { private int value; private Node leftNode; private Node rightNode; // setter getter}采用层次遍历输出public class LevelTraversal { public static void traversal(Node nod原创 2020-12-30 15:50:36 · 235 阅读 · 8 评论 -
二叉排序树
二叉排序树(Binary Sort Tree)又称查找二叉树,它可以是一个空树,或者要满足以下条件:(1)左右子树各是一棵查找树。(2)如果有左子树,则左子树的各节点值均小于根节点的值。(3)如果有右子树,则右子树上的各节点值均大于根节点的值。总之就是它的左子树比根节点小,右子树比根节点大。插入插入逻辑比较简单,满足二叉排序树特征即可,注意点,值相等时,过滤了public class Node { private int value; private Node leftNode; pr原创 2020-12-22 02:14:15 · 718 阅读 · 0 评论 -
B 树,B+树
B 树,B+树todo原创 2020-12-20 21:40:16 · 282 阅读 · 0 评论 -
红黑树学习思路
红黑树todo原创 2020-12-20 21:39:43 · 161 阅读 · 0 评论 -
平衡二叉树-动态调整【多图】
平衡二叉树todo原创 2020-12-20 21:39:10 · 632 阅读 · 0 评论 -
二叉树学习记录
几种遍历规则递归遍历和非递归遍历实现已知两种遍历顺序,画图两种方式都是先找出根节点,再确定左节点,右节点前序:GDAFEMHZ中序:ADEFGHMZ根据前序规则(GDAFEMHZ),我们可以确定根节点一定是G根据中序遍历(ADEFGHMZ),可以根据根节点G左子树有ADEF节点,子树节点有HMZ节点【左子树的确定】根据左子树有ADEF节点,我们去前序中查找,最先出现的一定是左子树有ADEF的根节点,根节点为D,递归,重复步骤二,查找剩下的结构【右子树的确定】根据右子树有HMZ节点,我们原创 2020-12-17 23:30:21 · 128 阅读 · 0 评论 -
动态规划学习记录
参考链接总结动态规划特点,从已知数据状态,推断出下一个数据状态。例如:{A1->A2}; {A1, A2->A3}; {A1,A2,A3->A4};……; {A1,A2,...,Ai}->Ai+1.最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。无后效性:即某阶段状态一旦确定,就不受这个状态以后决策的影响。也就是说,某状态以后的过程不会影响以前的状态,只与当前状态有关。有重叠子问题:即子问题之间是不独立的,原创 2020-12-17 21:29:58 · 117 阅读 · 0 评论 -
经典的算法,必要掌握
动态规划分支定界分治算法回溯法排序算法复杂度基础贪心算法字符串匹配原创 2020-12-10 01:58:07 · 157 阅读 · 0 评论 -
串的模式匹配算法-KMP算法的演进
也就是平时所说的求子串位置的定位函数 Index(S,T,pos),如下图所示,请子串abcd在字符串abceabcdijkl位置通常的做法实现如下定义数据类型#define MAX_STRING_LEN 255// 下标为0存放串长度typedef unsigned char String[MAX_STRING_LEN + 1];定义字符串构建和字符串遍历的方法字符串构造,...原创 2019-11-11 21:46:43 · 499 阅读 · 0 评论