【发布时间】:2020-10-16 10:24:06
【问题描述】:
sum = 0;
for (i = 0; i < m; i++)
for (j = 0; j < m*m; j++)
sum++;
一直在尝试用 Big-O 表示法计算该算法的时间复杂度。
我只发现第一个循环计为 O(m),第二个循环计为 O(m^2)。但我有一个问题。这个嵌套循环算作 O(m^3) 还是我必须以增长最快的函数为基础并说这个循环算作 O(m^2) ?
【问题讨论】:
-
它是相乘的,所以
O(m^3)。与简单循环相同的方式是O(n),但两个这样的嵌套循环是O(n*n) -
外循环是O(m),内循环是O(m^2),整体是O(m x m^2) = O(m^3)
标签: algorithm time-complexity big-o