有谁知道如何解决这种复发问题?
硕士定理在这里不起作用。
答案 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)作为递归成本。