多个嵌套的for循环和StringBuilder的运行时复杂度

问题描述

我意识到嵌套的for循环具有O(n ^ 2)运行时,但是如果在外部for循环内有两个 for循环怎么办,如下所示?它仍然具有O(n ^ 2)运行时吗?

for (i = 1; i <= n; i++)
{
  for(j = 1; j <= n; j++)
  {
   // Some code
  }
  for(p = 1; p <= n; p++)
  {
   // Some code
  }
}

字符串生成器还具有O(n)运行时来构造大小为n的字符串吗?

解决方法

您的外循环执行两个内循环的n倍,每个内循环执行n个步骤。这样就得到了n * 2n = 2n^2个步骤,即O(n^2)