红黑树高度上限2log2(N+1)简洁证明【通俗易懂且正确!】

2024-05-14 06:12

本文主要是介绍红黑树高度上限2log2(N+1)简洁证明【通俗易懂且正确!】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先阅读这篇文章 https://fanlv.fun/2018/08/12/binary-tree/

明白什么是满二叉树?什么是2-3树,红黑树如何转换成2-3树。

  1. 我们可以得知满二叉树节点n和高度h的关系
    n = 2 h − 1 n = 2^h-1 n=2h1

  2. 根据2-3树的构造规则,可知2-3树是一个满树,若全为2-的节点,即为满二叉树
    所以2-3树节点n和高度H的关系
    1 2 ( 3 H − 1 ) ⩾ n ⩾ 2 H − 1 ⇒ H ⩽ log ⁡ 2 ( n + 1 ) \frac{1}{2}(3^{H}-1 ) \geqslant n \geqslant 2^H-1\\ \Rightarrow H \leqslant \log_2 (n+1) 21(3H1)n2H1Hlog2(n+1)

  3. 由红黑树转化为2-3树可知,2-3树的高度H==红黑树的高度hb
    为什么?转化过程中,红连接展平,黑链接不动。始终不变的是黑连接,
    红黑树的高度 h b ⩾ h 2 hb \geqslant \frac{h}{2} hb2h
    n ⩾ 2 H − 1 n ⩾ 2 h b − 1 ⩾ 2 h 2 − 1 h ⩽ 2 log ⁡ 2 ( n + 1 ) n \geqslant 2^{H}-1\\ n \geqslant 2^{hb}-1 \geqslant 2^{\frac{h}{2}} -1\\ h \leqslant 2\log_2 ( n+1) n2H1n2hb122h1h2log2(n+1)

这篇关于红黑树高度上限2log2(N+1)简洁证明【通俗易懂且正确!】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/987968

相关文章

轻松掌握python的dataclass让你的代码更简洁优雅

《轻松掌握python的dataclass让你的代码更简洁优雅》本文总结了几个我在使用Python的dataclass时常用的技巧,dataclass装饰器可以帮助我们简化数据类的定义过程,包括设置默... 目录1. 传统的类定义方式2. dataclass装饰器定义类2.1. 默认值2.2. 隐藏敏感信息

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

设计模式之工厂模式(通俗易懂--代码辅助理解【Java版】)

文章目录 1、工厂模式概述1)特点:2)主要角色:3)工作流程:4)优点5)缺点6)适用场景 2、简单工厂模式(静态工厂模式)1) 在简单工厂模式中,有三个主要角色:2) 简单工厂模式的优点包括:3) 简单工厂模式也有一些限制和考虑因素:4) 简单工厂模式适用场景:5) 简单工厂UML类图:6) 代码示例: 3、工厂方法模式1) 在工厂方法模式中,有4个主要角色:2) 工厂方法模式的工作流程

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

240907-Gradio插入Mermaid流程图并自适应浏览器高度

A. 最终效果 B. 示例代码 import gradio as grmermaid_code = """<iframe srcdoc='<!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width" /><title>My static Spa

Emlog模板-简洁大气的资源下载站PHP源码

模板介绍 Emlog模板-简洁大气的资源下载站PHP源码 模板留白简洁大气,首页ajax加载下一页,这是纯模板,安装需要先安装好emlog系统,再把模板文件上传到Emlog模板目录,后台选择模板就可以了,非常简单。 模板下载 Emlog模板-简洁大气的资源下载站PHP源码

hibernate泛型Dao,让持久层简洁起来

【前言】hibernate作为持久层ORM技术,它对JDBC进行非常轻量级对象封装,使得我们可以随心所欲的使用面向对象的思想来操作数据库。同时,作为后台开发的支撑,的确扮演了一个举足轻重的角色,那么我们在项目中如何灵活应用hibernate,也会给项目维护以及项目开发带来便利,下面我将展示我们项目中是如何来对hibernate进行应用和操作。 【目录】              -

Circuit Design 三极管驱动蜂鸣器电路 及 蜂鸣器两端电压正确但是不响的解决方案

利用三极管进行电流放大的蜂鸣器驱动电路图: (百度图片找的) 我用有源蜂鸣器实现的这个电路,但是蜂鸣器不响。 details: 1. VCC =5V 蜂鸣器两端的直接电压约为4.5V, 但是蜂鸣器不响。 2. 将蜂鸣器直接接在4.5V的电源两端,蜂鸣器响。(说明蜂鸣器是好的) 3. 测了三极管各个管脚的电压, 和理论上的是一致的。 情况很奇怪,换了好几个三极管结果都是一样的,

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录(失败记录)

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录 这次是装实体机,一次失败的尝试。。。 名称型号CPUIntel Xeon E5-2673 V3GPURTX 3060 mobile 安装的时候不要选install third-party software for graphics and Wi-fi hardware and additional media

红黑树的旋转

红黑树的基本性质 红黑树与普通的二叉搜索树不同,它在每个节点上附加了一个额外的属性——颜色,该颜色可以是红色或黑色。通过引入这些颜色,红黑树能够维持以下 5 个基本性质,以确保树的平衡性: 每个节点是红色或黑色。根节点是黑色。所有叶子节点(NIL 节点)是黑色。如果一个节点是红色的,那么它的两个子节点都是黑色的(即,红色节点不能有红色子节点)。从任一节点到其每个叶子节点的所有路径上都包含相同数