gpt4 book ai didi

java - 通缉 : Recurrence Formula of In-Order binary tree output method

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:25 24 4
gpt4 key购买 nike

我在寻找这个 java 方法的递推公式时遇到了麻烦

void printInorder(Node<T> v) {
if(v != null) {
printInorder(v.getLeft());
System.out.println(v.getData());
printInorder(v.getRight());
}
}

一些标准:

  • 它是一棵完全二叉树(每个内结都有 2 个 child ,每片叶子的深度相同)
  • 这棵树有 n 个节点,复杂度为 O(n)

我必须找到与n 结 的树的深度h 相关的递归公式,作为额外的奖励,我需要外推显式从中得出 O(n) 的公式。

现在,这就是我得到的:

d = depth of the tree
c = constant runtime for execution of the method itself
d = 1: T(n) = c
d = 3: T(n) = T(d=1) + T(d=2) + T(d=3) + c

我使用示例 d = 3 来为自己澄清事情,我很难进一步分解它。我的假设是否正确?


编辑:下一步尝试做事

[x] = { x in real numbers : max([x]) <= x }, [x] rounded down to next full number
d = 1: T(d) = 1
d > 1: T(d) = 2^(h-1) * T(n/(2^(h-1)))

1: T(h) = T(i = 0) + T(i = 1) + ... T(i = h-1)
2: T(h) <= (2^(0-1) + n/(2^(0-1))) + (2^(1-1) + n/(2^(1-1))) + ... + (2^(h-2) + n/(2^(h-2)))
3: T(h) = n + n + ... + n
4: T(h) = (h-1)n
5: T(h) = O(n)

因为树的每一层深度都恰好包含 2^(h-1) 个节点,所以第 4 行中的 h 因子可​​以忽略,因为 n 与最终结果更相关。

最佳答案

T(n) = T(n/2) + T(n/2) + 1

  • 0 级有 1 个操作。

  • 1 级有 2 个操作。

  • 2 级有 4 个操作。

  • 第 k 层有 2^k 个操作。

  • 树的深度是lgn。

1+2+...+2^lgn=
2^0+2^1+2^2+...+2^lgn=
(2^(lgn + 1)-1)/(2-1)=2*2^lgn=
2n.

关于java - 通缉 : Recurrence Formula of In-Order binary tree output method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11388253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com