首页 > 其他分享 >11.11日记

11.11日记

时间:2023-11-11 16:55:06浏览次数:44  
标签:黑树 复杂度 二叉 查找 二叉树 平衡 11.11 日记

二叉查找树在频繁的动态更新过程中,可能会出现树的高度远大于log2n的情况,从而导致各个操作的效率下降。极端情况下,二叉树会退化为链表,时间复杂度会退化到O(n)。我上一节说了,要解决这个复杂度退化的问题,我们需要设计一种平衡二叉查找树,也就是今天要讲的这种数据结构。

很多书籍里,但凡讲到平衡二叉查找树,就会拿红黑树作为例子。不仅如此,如果你有一定的开发经验,你会发现,在工程中,很多用到平衡二叉查找树的地方都会用红黑树。你有没有想过,为什么工程中都喜欢用红黑树,而不是其他平衡二叉查找树呢?

带着这个问题,让我们一起来学习今天的内容吧!
什么是“平衡二叉查找树”?

平衡二叉树的严格定义是这样的:二叉树中任意一个节点的左右子树的高度相差不能大于1。从这个定义来看,上一节我们讲的完全二叉树、满二叉树其实都是平衡二叉树,但是非完全二叉树也有可能是平衡二叉树。

标签:黑树,复杂度,二叉,查找,二叉树,平衡,11.11,日记
From: https://www.cnblogs.com/zhangmingmkzj/p/17826066.html

相关文章

  • springboot学习日记(二)
    运行springboot项目报错o.s.b.d.LoggingFailureAnalysisReporter,查资料试着查一下端口占用8080。netstat-aon|findstr8080发现8080端口被进程8768占用。 查找8768进程的程序tasklist|findstr8768发现是腾讯会议。。。 退出了再试试,还是没解决问题。。很好,排除一......
  • 11.11算法
    题目填充每个节点的下一个右侧节点指针给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:structNode{intval;Node*left;Node*right;Node*next;}填充它的每个next指针,让这个指针指向其下一个右侧节点。如果找不到下一个右......
  • 日记 2023.11.10:2023 syzx 秋季训练 6
    日记2023.11.10:2023syzx秋季训练6*HIA拆位,带权并查集/二分图判定。B按位做差,于是只需要一次bfs。bonus:长度\(\leq5000\)(单次)或\(\leq20\)(多次)https://codeforces.com/problemset/problem/1852/C?不是同一题。C分类讨论。钦定\(A\leqB\)。必然有一维,满足两个......
  • nfls 11.10挂分日记
    今天老老实实写了对拍,但是还是挂分了。T1数论分块,学了一下双指针的写法,我那个写法又对于大肠选手直接T飞了。没注意到这个数据其实很大概率都是全部输出0,在没有精心构造的情况下几乎全都跑挂了。T2一个最短路的变形题目,每个行每个列跑一个最短路就好了,将关键点之间连边,然......
  • springboot学习日记(一)
    今天连下数据库,不小心打成netstartmysql了,好糗。。以后等时机到了笔记也该换成markdown写了,好久没写md后面得复习下。然后idea这边连数据库很简单不用写专门的程序,右侧栏database直接可以点开具体到连接某个数据库。记录一下注解的原理和作用:以前,『XML』是各大框架的青睐者,它......
  • 11.7日记
    cp命令:复制文件或目录(9)将当前用户的主文件夹下的文件.bashrc复制到目录“/usr”下,并重命名为bashrc1sudocp~/.bashrc/usr/sudomv/usr/.bashrc/usr/.bashrc1(10)在目录“/tmp”下新建目录test,再把这个目录复制到“/usr”目录下mkdir/tmp/testsudocp-r/tmp/test/usr/mv命......
  • 日记 2023.9.22:2023 syzx 秋季训练 2
    hydrohack添加方法:添加一个空的subtask,依赖subtask1,分数可以调成10,subtask1分数调成90。上传validator.cpp。上传checker.cpp,不能依赖.ans,其实是个std。调整评测方式为testlib,配置加上validator:validator.cpp这一行。点开AC提交就可以hack了。.cc是......
  • 日记 2022.12.17:22年实验中学秋季训练 6
    A.gym103428m问有多少个长度为\(n\)的01串,其中有\(m\)个是1,且最长连续的1的长度恰好是\(k\)。十万。Trick1容斥系数怎么算?Trick2限制了这个串的长度和\(1\)的个数,这意味着什么?插板的东西是什么?solution错解明显不顾最长连续段限制答案是$g(n,m)=\bin......
  • 【蠢人日记/silly dairy】
    exam1importmathp=sqrt(4)#wrongp=math.sqrt(4)#rightdeff(x=3,y=4):p=1returnpans=f(x,y)#wrongans=f(x=2,y=3)#rightans=f(2)#rightf函数中x=2,y=4range(1,10,1)#rightrange(1:10:1)#wrongdeff(x=3,y=4):f=1returnf#right......
  • 11.6日记
    继承是面向对象的三大特性之一,但很多时候使用继承的结果却不尽如人意。除了人尽皆知的紧耦合问题外,有的时候还会导致子类的快速膨胀。设想这样一个场景:最初设计的时候有一个类型Product,但后来随着新需求的出现,X原因导致了它的变化,X有两种情况,则通过继承需要创建两个新的子类Produc......