Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 如何从T(n)=2T(n/2)和x2B获得O(nlogn);O(n)_Algorithm_Big O - Fatal编程技术网

Algorithm 如何从T(n)=2T(n/2)和x2B获得O(nlogn);O(n)

Algorithm 如何从T(n)=2T(n/2)和x2B获得O(nlogn);O(n),algorithm,big-o,Algorithm,Big O,嗨,我正在研究这个算法,我得到了一个关于get O(nlogn)的问题,没有使用主定理 我很难得到O(nlogn) 有人知道从T(n)=2T(n/2)+O(n)得到O(nlogn)的数学方法吗 谢谢绘制递归树: 树的高度将为对数n 每一级的成本都是常数乘以n 因此,总成本为O(nlogn) 如果你愿意,你可以用归纳法来证明它。注意模式(简化一点,最好是保持O(n)而不是n): 对于仍在研究如何绘制递归树的人: 图:T(n)=2T(n/2)+O(n)算法的递归树 画一棵树如下,我们可以看到,每次我

嗨,我正在研究这个算法,我得到了一个关于get O(nlogn)的问题,没有使用主定理

我很难得到O(nlogn)

有人知道从T(n)=2T(n/2)+O(n)得到O(nlogn)的数学方法吗

谢谢

绘制递归树:

树的高度将为对数n

每一级的成本都是常数乘以n

因此,总成本为O(nlogn)

如果你愿意,你可以用归纳法来证明它。

注意模式(简化一点,最好是保持
O(n)
而不是
n
):


对于仍在研究如何绘制递归树的人:

图:T(n)=2T(n/2)+O(n)算法的递归树

画一棵树如下,我们可以看到,每次我们除以2,直到我们的叶子等于1

n/2^k = 1 
2^k = n 
k= log(n)
上述语句证明我们的树的深度为log(n)

在每一级,我们都要进行一项成本为O(n)的操作

即使我们每次除以2,我们仍然在两个部分上进行运算,因此在每个级别上都有n迭代

由于我们执行它的次数等于我们的深度,因此产生的复杂性是O(nlog(n))


另外,请查看此视频教程

狂想:n上的归纳法?然而,我不明白这与“算法”有什么关系(不管是什么)。(感谢用户2076566,他做了一个技术上正确的编辑,澄清了我在掩饰什么,但被三个高评级用户拒绝了。)
n/2^k = 1 
2^k = n 
k= log(n)