一直在学习分而治之,我正在努力去理解一个概念。如果我们有一个排序的数组,并希望做一些任务....我们得到的公式分而治之
T(n) = a (n/b) * O(n)
如果我们使用b = 2
(二叉树),这意味着每个子阵列制作成两个子阵......我们得到
T(n) = 2 (n/2) * O(n)
- >和掌握规则running time = O(n * logn)
现在,如果我们使用b = 3
(三进制树),这意味着每个子阵列制作成三个子阵,我们得到
T(n) = 3 (n/3) * O(n)
- >这意味着running time = O(n * logn)
问题:
如果运行时间更长,如果我们让更多的分裂?
无论我的树有多大,为什么我会一直保持相同的运行时间?
我认为你的意思是'a(n/b)+ O(n)'(PLUS,不是*) – Adam
你是什么意思PLUS不是* – JohnBlack
复发严重写。我猜想他们正确的预期版本是:T(n)= aT(n/b)+ O(n)','T(n)= 2T(n/2)+ O(n)'和T N)= 3T(N/3)+ O(n)的'。 – anumi