分析下列程序段的时间复杂度: x=0; for(i=1; i<n; i++) for (j=1; j<=n-i; j++) x++;
时间: 2023-07-14 14:56:39 浏览: 916
算法的时间复杂度分析
这段程序的时间复杂度为 $O(n^2)$。
原因如下:
该程序段中有两个嵌套的循环,外层循环的次数为 $n-1$,内层循环的次数为 $n-i$,因此总共的循环次数为:
$$
\sum\limits_{i=1}^{n-1}{(n-i)}=\sum\limits_{j=1}^{n-1}j=\frac{(n-1)\times n}{2}=O(n^2)
$$
在循环体内部,只有一条语句,即 x++,该语句的时间复杂度为 $O(1)$,因此总时间复杂度为 $O(n^2)$。
最后,程序将 x 的值赋给了某个变量,这一步不会影响时间复杂度。
阅读全文