列表

详情


在某个算法时间复杂度递归式T(n)=T(n-1)+n,其中n为问题的规模,则该算法的渐进时间复杂度为(  ),若问题的规模增加了16倍,则运行时间增加(  )倍。

第 1 问

A. Θ(n)

B. Θ(nlgn)

C. Θ(n2)

D. Θ(n2lgn)

第 2 问

A. 16

B. 64

C. 256

D. 1024

参考答案: C C

详细解析:

本题需要用代入法计算时间复杂度。

T(n)
=T(n-1)+n
=(T((n-1)-1)+(n-1))+n
=(T((n-2)-1)+(n-2))+(n+(n-1))
=(T((n-3)-1)+(n-3))+(n+(n-1)+(n-2))

=(T((n-(n-2))-1)+(n-(n-2)))+(n+(n-1)+(n-2)+…+((n-(n-3))))
=T(1)+(n+(n-1)+(n-2)+…+((n-(n-3)))+(n-(n-2)))
=T(1)+(n+(n-1)+(n-2)+…+3+2)= n+(n-1)+(n-2)+…+3+2+1=(1+n)*n/2

所以该算法时间复杂度为O(n2),第一空选择C选项。

假设原n=1,代入时间复杂度问题规模为12=1,此时若问题的规模增加了16倍,则时间复杂度从1变为162=256,第二空选择C选项。


上一题