can t(n)= 2t(n / 2)+ n ^ 0.5 / logn可以用主控定理求解吗?

时间:2016-06-10 13:05:56

标签: algorithm data-structures master-theorem

我和我的朋友争辩,我们昨天参加了考试。我说它不能,他说这将是案例1.可能他是对的,但我似乎无法理解为什么。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

对于n大于1的任何值,n ^(0.5 / log n)具有exp(0.5)的常数值。这很容易证明:

   x = n^(0.5/log n)
   log(x) = (log n) * 0.5 / (log n) = 0.5
=> x = exp(0.5) = 1.64872...

因此,表达式的第二项可以视为常量。使用常数第二项,您的公式相当于t(n) = 2t(n/2) + 1,其复杂度为O(n)。

是的,你的朋友是对的。这对应于case 1,其中f(n)∈O(n ^ c)中的c值为零。