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

Time complexity c*n*(1-n)的渐近时间复杂度,time-complexity,recurrence,Time Complexity,Recurrence,假设在解决一个递归问题时,我发现: T(n) = c*n*(1-n) = c*n - c*n^2 其中c为正常数,n为输入的大小 是否应该考虑此递归的渐近时间复杂度,O(n)为n^ 2项为负?< /P> 更新: 例如,假设我们有以下循环: 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

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

T(n) = c*n*(1-n) = c*n - c*n^2
其中c为正常数,n为输入的大小

是否应该考虑此递归的渐近时间复杂度,O(n)为n^ 2项为负?< /P> 更新:

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

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) T(n)=T(a*n)+O(n),其中系数a小于1: =>T(n)=c*n*(1+a+a^2+a^3+…用于logan术语) =>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) T(n)=T(a*n)+O(n),其中系数a小于1: =>T(n)=c*n*(1+a+a^2+a^3+…用于对数(1/a)n项) =>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)
不,你的配方有问题。即使在n=2时,你的时间也是否定的。我已经更新了一个示例提示:你在推理方面做出了错误的飞跃,这导致了符号错误。