Math 分而治之

Math 分而治之,math,optimization,computer-science,mathematical-optimization,divide-and-conquer,Math,Optimization,Computer Science,Mathematical Optimization,Divide And Conquer,我一直在学习分而治之,我正在努力理解一个概念。如果我们有一个排序数组,并想执行一些任务。。。。我们得到了公式 T(n) = a (n/b) * O(n) 如果我们使用b=2(二叉树),这意味着每个子数组被分成两个以上的子数组。。。我们得到 T(n)=2(n/2)*O(n)-->根据主规则,运行时间=O(n*logn) 现在,如果我们使用b=3(三元树),这意味着每个子数组被分成三个子数组 T(n)=3(n/3)*O(n)-->这意味着运行时间=O(n*logn) 问题: 如果我们进行更多的拆分

我一直在学习分而治之,我正在努力理解一个概念。如果我们有一个排序数组,并想执行一些任务。。。。我们得到了公式

T(n) = a (n/b) * O(n)
如果我们使用
b=2
(二叉树),这意味着每个子数组被分成两个以上的子数组。。。我们得到

T(n)=2(n/2)*O(n)
-->根据主规则,运行时间=O(n*logn)

现在,如果我们使用
b=3
(三元树),这意味着每个子数组被分成三个子数组

T(n)=3(n/3)*O(n)
-->这意味着运行时间=O(n*logn)

问题:

如果我们进行更多的拆分,运行时间是否应该更长


为什么不管我的树有多大,我的跑步时间都是一样的

这样想吧。您有一个长度
n
数组。在树的每一级细分该数组。但总的来说还是有
n
元素,不管你如何细分它


在父级,您执行
n
工作。在每个孩子身上,你都做
n/X
工作,但你做了
X
次,所以同样是
n
工作。

这样想。您有一个长度
n
数组。在树的每一级细分该数组。但总的来说还是有
n
元素,不管你如何细分它


在父级,您执行
n
工作。在每个孩子身上,你都做
n/X
工作,但你做了
X
次,所以同样是
n
工作。

这很简单。无论树的阶数是多少,下一级过程的和都是相同的。如您所知,树的阶数越大,子节点的进程越小。和下一级流程的总和相同。但它仅在空闲条件下有效。实际上,由于递归函数调用,树的阶数越多,运行时间越慢。

这很简单。无论树的阶数是多少,下一级过程的和都是相同的。如您所知,树的阶数越大,子节点的进程越小。和下一级流程的总和相同。但它仅在空闲条件下有效。实际上,由于递归函数调用,树的阶数越多,运行时间就越慢。

我想你的意思是
a(n/b)+O(n)
(PLUS,not*)什么意思PLUS not*递归写得很糟糕。我猜他们正确的预期版本是:
T(n)=aT(n/b)+O(n)
T(n)=2T(n/2)+O(n)
T(n)=3T(n/3)+O(n)
。这个问题与主题无关。我想你的意思是
a(n/b)+O(n)
(PLUS,not*)你是什么意思PLUS not*复发写得很糟糕。我猜他们正确的预期版本是:
T(n)=aT(n/b)+O(n)
T(n)=2T(n/2)+O(n)
T(n)=3T(n/3)+O(n)
。这个问题与主题无关。它更合身