内循环的上界是什么?

时间:2017-09-16 21:33:29

标签: c++ algorithm

据我所知,非嵌套/单个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循环的时间复杂度是多少?

3 个答案:

答案 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,另一个从零到上限