问题 单项选择题

下面这个程序段的时间复杂度是( )。
for (i=1;i<n;i++)

y=y+1;
for (j=0;j<=(2*n);j++)
x++;

A.O(1og2n)

B.O(n)

C.O(nlog2n)

D.O(n2)

答案

参考答案:D

解析: 语句的频度指的是该语句重复执行的次数。一个算法中所有语句的频度之和构成了该算法的运行时间。在本题算法中,其中语句“y=y+1;”的频度是n-1,语句“x++;”的频度是(n-1)(2n+1)=2n2-n-1。则该程序段的时间复杂度是T(n)=n-1+2n2-n-1=O(n2)。

单项选择题
单项选择题