T(n)= T(n - sqrt(n))

时间:2011-03-22 15:54:59

标签: complexity-theory big-o recurrence

有谁知道如何解决这种复发问题?

硕士定理在这里不起作用。

2 个答案:

答案 0 :(得分:3)

在O(1)中似乎很明显

T(n) = T(n - sqrt(n)) = T(m) with 0 < m < n

通过归纳,得到T(n)= T(epsilon),epsilon接近0。

如果是T(n)= T(n - sqrt(n))+ m

,这个问题会更加敏感

答案 1 :(得分:0)

你是正确的,硕士定理不适用于此。如果你仔细观察,你会发现递归的成本为零(右侧没有自由元素:T(n) = T(m) + f(n)

这意味着运行递归绝对没有任何成本(甚至不是1次操作)。因此,只要您的n减少迭代次数(并且因为n > n - sqrt(n)而减少),您的递归实际上是免费的。

答案是O(1)。附:在现实生活中不可能有这个,因为你将至少以O(1)作为递归成本。

相关问题