据我所知,非嵌套/单个for循环的上限(即(int i = 0; i< n ; i ++)是最坏的时间复杂度。基本上, n 是for循环迭代的最大次数。记住这条信息,这里是我编写的伪代码。
for (i = 1; i <= n; i++)
for (j = n; j >= 1; j--)
cout << "hi";
从这段代码中可以看出,外部for循环上限的时间复杂度为O(n)。
然而,内部for循环的时间复杂度是多少?
答案 0 :(得分:1)
内循环中的语句执行n*n
次,导致O(n^2)
的复杂性。
答案 1 :(得分:1)
for (i = 1; i <= n; i++)// O(n)
for (j = n; j >= 1; j--)// O(n)
cout << "hi";// O(1)
总计:O(n)*O(n)*O(1)=O(n^2)
答案 2 :(得分:0)
for (j = n; j >= 1; j--)
和for(j = 0; j <= n; j++)
是相同的语句,只要它们执行多少次,一个从上限计数到0,另一个从零到上限