红黑树高度上限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

相关文章

Java中八大包装类举例详解(通俗易懂)

《Java中八大包装类举例详解(通俗易懂)》:本文主要介绍Java中的包装类,包括它们的作用、特点、用途以及如何进行装箱和拆箱,包装类还提供了许多实用方法,如转换、获取基本类型值、比较和类型检测,... 目录一、包装类(Wrapper Class)1、简要介绍2、包装类特点3、包装类用途二、装箱和拆箱1、装

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

轻松掌握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源码