binary-tree - 证明具有 n 个叶子的二叉树的高度至少为 log n
问题描述
我知道高度二叉树中的叶子数h
最多为2^h
,并且我也知道如何使用归纳法来证明这一点。我从这里去哪里?
我发现了这个先前回答的问题,但这对我来说没有任何意义,因为我不明白定理部分中的矛盾证明与二叉树的高度至少有什么关系log(n)
。我原以为他会谈论log(n)
与叶子数量和高度之间的关系,但他却继续谈论如何使用n = 2^a + b
.
谁能帮我理解我们如何证明一个有 n 片叶子的 BT 的高度至少是 log n?
解决方案
考虑一棵二叉树,让它h
的高度和n
叶子的数量。
根据你的第一句话,n <= 2^h
。在两边取一个以 2 为底的对数(因为对数是单调的,所以保持不等式),我们有log(n) <= h
. 这立即给了你你想要的东西:高度至少是 ,叶子的数量log(n)
在哪里。n
推荐阅读
- javascript - 有没有办法解决“Uncaught TypeError: Cannot read property of undefined In JavaScript”?
- r - 如何在线条周围创建不重叠的缓冲区?
- python - python中有没有可以将文本转换为数字的函数?
- angular - 多个 RXJS Observable 之间的共享数据
- python - 无法使用 pipenv 和 Python 3.8 安装 opencv-python
- java - android Date + 14 和自定义天数
- spring-boot - spring-boot:在 ctrl-c 后运行失败
- excel - 我正在循环使用带有 activex 对象的工作表,我想设置对象的属性
- java - 创建名为“namedParameterJdbcTemplate”的 bean 时出错,无法确定合适的驱动程序类,尝试运行 Web 应用程序
- javascript - 构造函数什么时候返回`this`,什么时候返回它被告知要返回的内容?