下面这个程序段的时间复杂度是()。for(i=1;i<n;i++){y=y+1;for(j=0;j<=(2*n);j++)X++;}A.O(log2n)

计算机 复杂度,时间,程序 已帮助 人

下面这个程序段的时间复杂度是()。 for (i=1; i<n; i++) { y=y+1; for (j=0;j<=(2*n);j++) X++; }

A.O(log2n)

B.O(n)

C.0(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)。