algorithm - 求解递归 T(n) = 2T(n/2) + sqrt(n)

标签 algorithm discrete-mathematics

<分区>

需要一点帮助!这是我到目前为止使用向后替换的结果:

T(n) = 2T(n/2) + sqrt(n), where T(1) = 1, and n = 2^k
T(n) = 2[2T(n/4) + sqrt(n/2)] + sqrt(n) = 2^2T(n/4) + 2sqrt(n/2) + sqrt(n)
T(n) = 2^2[2T(n/8) + sqrt(n/4)] + 2sqrt(n/2) + sqrt(n)
     = 2^3T(n/8) + 2^2sqrt(n/4) + 2sqrt(n/2) + sqrt(n)

总的来说

T(n) = 2^kT(1) + 2^(k-1) x sqrt(2^1) + 2^(k-2) x sqrt(2^2) + ... + 2^1 x sqrt(2^(k-1)) + sqrt(2^k)

到目前为止这是对的吗?如果是,我不知道如何简化它并将其简化为通用公式。

我猜是这样的吗?组合术语

= 1 + 2^(k-(1/2)) + 2^(k-(2/2)) + 2^(k-(3/2)) + ... + 2^((k-1)/2) + 2^(k/2)

这就是我被困的地方。也许是分解 2^k 的方法? 任何帮助都会很棒,谢谢!

最佳答案

你已经完成了一半。 表达式可以简化为:

关于algorithm - 求解递归 T(n) = 2T(n/2) + sqrt(n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16259565/

相关文章:

c++ - 为什么这个 C++ 代码在不同的编译器上给出不同的输出?

python - 如何解决python中的同余系统?

optimization - 狐狸-山羊-卷心菜运输

algorithm - DeviceMotion采用什么算法从加速度计和陀螺仪计算姿态?

c++ - 从中序和先序遍历构造二叉树的时间复杂度

algorithm - 在 FORTRAN 90 中编程 Cholesky 分解时出错

java - Java中的快速LinkedList搜索和删除

algorithm - 双for循环的复杂性

c++ - 找出 Uneaten Leaves 算法错误

算法大o阶增长代码