【问题标题】:Time complexity and loops时间复杂度和循环
【发布时间】:2020-05-14 11:15:21
【问题描述】:

谁能解释这两个循环之间时间复杂度的差异。

for(int i = 0; i < n; i++)
{
   for(int j=0; j < n; j++)
   {
        Matrix[i][j] = 0;
   }
}

还有--->

int i = 0;
int j = 0;

while(i < n)
{
    Matrix[i][j] = 0;

    j++;

    if(j == n)
    {

       j=0;
       i++;

    }

}

我知道第一个的时间复杂度是 O(n2)。我需要知道第二个的时间复杂度是多少,如果第二个的时间复杂度最低,为什么程序员倾向于使用第一个?

【问题讨论】:

  • 相同的时间复杂度。但是,与通常的嵌套循环相比,第二个循环的可读性/可维护性较差。通过添加int counter 变量可以轻松计算复杂度,每次迭代都会递增

标签: loops time-complexity


【解决方案1】:

两种解决方案的时间复杂度相同,均为 O(n^2)

IMO 首选第一个解决方案,因为它更具可读性

【讨论】:

    猜你喜欢
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    • 2017-04-11
    • 2016-12-17
    • 1970-01-01
    相关资源
    最近更新 更多