会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
doctor灏
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
下一页
2022年2月20日
手撸jdk源码分析类加载机制
摘要: 我们一般写的java文件jvm是识别不了的,因此需要编译,编译后会变成.class文件,而要执行代码,jvm首先会去加载.class文件到内存中,那么他的流程是什么样的呢: 1.首先肯定创建java虚拟机(就像我们运行windows的程序首先得安装windows系统一个道理) 2.同时会创建一个引导
阅读全文
posted @ 2022-02-20 02:22 吃肉不长肉的小灏哥
阅读(245)
评论(0)
推荐(0)
2021年6月26日
算法笔记-完全二叉树个数计算(时间复杂度小于O(n))
摘要: 恢复内容开始 首先科普一个事实,对于一个满二叉树来说,节点个数=(1<< (高度))-1。 接下来我们看这道题,管他三七二十一,前面那么多树的遍历,直接搞起,可他丫的还有一个限制条件:时间复杂度小于O(n),那就把这条路堵死了,算了算了,先看图分析一下: 我们仔细观察可以发现,完全二叉树的左右子树必
阅读全文
posted @ 2021-06-26 22:34 吃肉不长肉的小灏哥
阅读(378)
评论(0)
推荐(0)
算法笔记-判定是否完全二叉树
摘要: 老规矩,先看定义:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树 在解释:其实就是和堆一样的,一棵树从上到下从左到右必须要完完整整的按顺序来,描述的不太容易理
阅读全文
posted @ 2021-06-26 21:48 吃肉不长肉的小灏哥
阅读(253)
评论(0)
推荐(0)
算法笔记-判断是否二叉搜索树
摘要: 二叉搜索树定义:二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 我们来看一下定义:左子树小
阅读全文
posted @ 2021-06-26 21:16 吃肉不长肉的小灏哥
阅读(133)
评论(0)
推荐(0)
算法笔记-判断是否平衡二叉树
摘要: 平衡二叉树的定义:平衡树(Balance Tree,BT) 指的是,任意节点的子树的高度差都小于等于1,我们可以看下图:左边就不是平衡二叉树,因为3的高度为3而5的高度为1,相差大于1。看右边树最大差别3的高度为2,5的高度为1,最大只相差1,所以为平衡二叉树。 那么我们怎么实现呢? 最简单的做法就
阅读全文
posted @ 2021-06-26 17:33 吃肉不长肉的小灏哥
阅读(259)
评论(0)
推荐(0)
算法笔记-寻找二叉树的前后置节点
摘要: 我们前面写过二叉树的前序,中序,后续遍历算法,今天聊到的前后置节点就是对于中序遍历来说的顺序前后节点,如下图是按中序遍历顺序1-10的节点: 比如3的前置节点为2,后置节点为4,我们先来看看后置节点的算法思想: 我们都知道中序遍历是按照节点左-父-右顺序遍历的,因此一个节点的后置节点只会有两种情况:
阅读全文
posted @ 2021-06-26 17:05 吃肉不长肉的小灏哥
阅读(293)
评论(0)
推荐(0)
2021年6月24日
算法笔记-二叉树前序,中序,后序
摘要: 二叉树遍历如下图所示,前序遍历对于1(父),3(左),5(右)这三个节点来说则先1后3,最后5,同理3,4,2这三个也是先父再左再右,那么对于下图来说,前序遍历顺序为1,3,4,5,6,2,7,5,以此类推: 先序遍历:先父,再左,最后右, 中序遍历:先左,再父,最后右 后序遍历:先左,再右,最后父
阅读全文
posted @ 2021-06-24 22:09 吃肉不长肉的小灏哥
阅读(385)
评论(0)
推荐(0)
2021年6月17日
算法笔记-之字形打印数组
摘要: 看到这道题一开始不知道从何入手,做完这道题有一种感受,那就是二维数组的题其实也没有那么难,用二维数组的两个下标控制需要的点移动就可以了。回到这一题,我们使用双指针去操作,如下图所示: a指针向右移动直到移动至4的位置,向下移动,b指针先向下移动直到移动到9的位置向右移动,这样就可以找到对称点,至于如
阅读全文
posted @ 2021-06-17 21:17 吃肉不长肉的小灏哥
阅读(127)
评论(0)
推荐(0)
2021年6月7日
算法笔记-数组实现栈,队列
摘要: 上篇写到了堆排,其实最主要的是使用数组实现堆结构,那么如何使用数组实现栈,队列呢? 首先我们简单了解栈的数据结构:栈是一种先进后出的结构,如下图可以看到按顺序进入的3->2->5,那么取出的顺序则为5->2->3。 如果使用数组实现,那就需要记住我最新插入的数是哪个,然后倒推取出,代码如下: pub
阅读全文
posted @ 2021-06-07 21:47 吃肉不长肉的小灏哥
阅读(61)
评论(0)
推荐(0)
2021年6月6日
算法笔记-堆排
摘要: 学习堆排之前先学习一下堆得数据结构,我们常用的一般分为小顶堆和大顶堆,我们以大顶堆为例: 上面从左到右分别是数组,数组转成堆得形式,其实就是一个完全二叉树,而最右边这个可以看到每个节点相对所有子节点来说都是最大的,这就是大顶堆,同理,小顶堆反之(这块不理解的可以看我之前写的一篇文章:https://
阅读全文
posted @ 2021-06-06 15:31 吃肉不长肉的小灏哥
阅读(62)
评论(0)
推荐(0)
上一页
1
2
3
4
5
下一页
公告