c*n*(1 - n) 的渐近时间复杂度

Asymptotic time complexity of c*n*(1 - n)

假设解决一个递归问题,我发现:

T(n) = c*n*(1-n) = c*n - c*n^2

其中 c 是正常数,n 是输入的大小

我是否应该考虑这种递归的渐近时间复杂度,O(n),因为 n^2 项是负数?

更新:

例如,假设我们有以下循环:


    T(n) = T(a*n) + O(n), where the factor a less than 1:
    => T(n) = c*n*(1 + a + a^2 + a^3 + ... for logan terms)
    => T(n) = c*n*(1 - a^logan)/(1 - a)
    => T(n) = c*n*(1 - n)/(1 - a) ~ c*n*(1-n)

@meowgoesthedog 在评论中提出的错误是由于推理中的错误飞跃(有 log(1/a)n 项而不是 logan);正确推导如下:


    T(n) = T(a*n) + O(n), where the factor a less than 1:
    => T(n) = c*n*(1 + a + a^2 + a^3 + ... for log(1/a)n terms)
    => T(n) = c*n*(1 - a^log(1/a)n)/(1 - a)
    => T(n) = c*n*(1 - n)/(1 - a) ~ c*n*(1-1/n) ~ O(n)