A-A+
下面这个程序段的时间复杂度是()。 for(i=1; i<n; i++) {y=y+1; f
问题详情
下面这个程序段的时间复杂度是()。 for(i=1; i<n; i++) {y=y+1; for(J=0; J<=(2*n);J++) x++;}
A.O(log2n)
B.O(n)
C.O(nlog2n)
D.O(n2)请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:D
解析:语句的频度指的是该语句重复执行的次数。一个算法中所有语句的频度之和构成了该算法的运行时间。本题中语句“y+y+1;”的频度是n-1,语句“x++;”的频度是(n-1)×(2n+1)=2n2-n-l,则该程序段的时间复杂度是O(n)=n-l+2n2-n-1=O(n2)。