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

admin2009-04-15  34

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

选项 A、O(log2n)
B、O(n)
C、O(nlog2n)
D、O(n2)

答案8

解析 语句的频度指的是该语句重复执行的次数。一个算法中所有语句的频度之和构成了该算法的运行时间。在本例算法中,语句①的频度是n-1,语句②的频度是(n-1)(2n+1)-2n2-n-1。则该程序段的时间复杂度是T(n)=n-1+2n2-n-1=O(n2)。
转载请注明原文地址:https://kaotiyun.com/show/QdXp777K
0

最新回复(0)