自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 java中的阻塞队列

阻塞队列

2021-11-14 22:03:00 911

原创 voliate可见性和有序性原理——硬件以及软件层面分析

voliate底层原理分析voliate的作用硬件层面分析软件层面voliate分析 voliate的作用 voliate的作用是保证被它修饰的共享变量具有可见性和有序性。 什么是内存可见性? 在多线程下一个线程修改了共享变量,能够立即让其他线程知道这个新值。 什么是有序性? 程序在执行时会以到达更高执行效率为目的,在保证最终程序结果正确的前提下进行指令重排,有序性就是阻止指令重排,保证指令按序执行。 硬件层面分析 我们先了解下硬件层面实现防止指令重排和内存可见性的原理。 CPU缓存的出现 计算机在执行程序

2021-11-06 20:07:52 885 1

原创 二叉树前中后遍历(非递归)java实现

二叉树的非递归遍历(前中后) 先序遍历:按照根左右的顺序遍历二叉树; 中序遍历:按照左根右的顺序遍历二叉树; 后序遍历:按照左右根的顺序遍历二叉树。 下图:先序遍历为ABDECF,中序遍历为DBEACF,后序列遍历为DEBFCA. 先序遍历的非递归实现思路:使用栈,入栈时打印节点。 a. 遇到一个节点,访问它,然后把它压栈并打印节点,并去遍历它的左子树;   b. 当左子树遍历结束后,从栈顶弹出该节点并将其指向右儿子,继续a步骤;   c. 当所有节点访问完即最后访问的树节点为空且栈空时,停止。 publ

2021-10-24 16:48:18 2832

原创 AVL树不平衡情况分析及java实现

平衡二叉树 平衡查找树(AVL树) AVL树是一种左右子树高度之差不超过1,且左右子树内部也符合高度差不超过1的性质。 下图个节点的左右子树高度差都超过了1,所有不是AVL树。 平衡因子: 某结点的左子树与右子树的高度(深度)差即为该结点的平衡因子(BF,Balance Factor)。平衡二叉树上所有结点的平衡因子只可能是 -1,0 或 1。如果某一结点的平衡因子绝对值大于1则说明此树不是平衡二叉树。为了方便计算每一结点的平衡因子我们可以为每个节点赋予height这一属性,表示此节点的高度。 引起

2021-10-13 16:28:54 525

原创 KMP算法分析以及java代码

KMP算法 在介绍KMP算法之前先介绍一下BF算法(暴力破解算法)。 BF算法 假设有两个字符串,一个叫做主串,另一个叫做模式串。现在想要知道模式串在主串的什么位置。那就要进行两个字符串的比较,我们一般想到的办法定义两个标记 i,j,让i指向主串的第一个字符,j指向模式串的第一个字符然后通过移动i,j的位置逐位比较,当模式串没有匹配成功,就要将i和j进行回退重新比较,j回退到模式串首位,i回退到比较起始位置的下一位。 如下图:当比较到图2的时候会发现D≠C,所以要进行i和j回退,回退到图3继续比较,直到在主

2021-09-19 09:54:01 115

原创 平衡二叉树之红黑树java实现

平衡二叉树之红黑树 红黑树是一种自平衡的二叉查找树,其具有如下性质: 1.所有节点只有红色和黑色; 2.根节点必须为黑色; 3.叶子节点都是黑色(叶子节点指的NIL是黑色); 4.每个红色节点都必须有两个黑色节点; 5.树中任意节点,其到树末端的NIL指针的任何一条路径上都有相同数量的黑色节点(保证平衡)。 *红黑树的高度被维持在logn,红黑树的查找、插入、删除最坏时间复杂度为O(logn)。* 红黑树的核心就是左旋右旋和变色,无论是插入和删除都是将相应节点先删除或插入在左旋右..

2021-09-15 21:19:42 201

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除