计算代码步数(时间复杂度)

时间:2017-06-14 04:58:59

标签: python time-complexity big-o

我需要帮助计算有关代码片段时间复杂度的步骤数。

total = 0
    i = 0
while i<3:
    j=0
    while j<3:
        total = total + 1
        j = j+1
    i = i+1
return total

我有解决方案说明:2 + 3 *(2 + 3 * 3 + 2)+2 = 43

从顶部开始的前两行,其中total = 0,i = 0,是的我知道每个都是1个时间步,因此加起来给我2.对于while语句,我不确定它是如何获得的,但是因为我&lt; 3,它的3个时间步骤?然后j = 0是1个时间步。

现在我在这里得不到它。如果有嵌套的i和j循环,我如何确定时间复杂度?在解决方案中,我注意到有*(多个),如果有人能用更简单的术语为我分解,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

时间复杂性需要争论。例如,O(n ^ 2)。

如上所述,我不知道你的函数的哪一部分会改变,所以它只是常数,O(1)。

让我们说i被比较的东西,在这种情况下是3,是可以改变的。就像你的功能是“为每个我做三次j事。”在这种情况下,您将看到如果增加该变量,您将在循环中再添加三个步骤。这意味着复杂性看起来像O(3n)。因为我们可以删除常数倍数,所以它只是O(n)。

我刚才写的是假设的。这取决于你的功能有多大。