如何找出python函数的时间复杂度

如何找出python函数的时间复杂度,python,time-complexity,Python,Time Complexity,我有一个函数,它循环遍历一组项目a,然后将它们乘以n。 这是非常基本的 a = [4,6,7,8,2,6,8,9] n = 13 for i in range(len(a)): t = a[i] * n print(t) 我如何计算出时间复杂度是多少?我是新手,所以详细的答案对我的学习非常有帮助 谢谢时间复杂度是O{m}其中m是a的长度 你可能想知道为什么它不是O{C*m}其中C是常数系数?在术语C*m中,当m变大时,m的贡献将使C的贡献相形见绌,因为C不会增长。因此,我们将

我有一个函数,它循环遍历一组项目
a
,然后将它们乘以
n
。 这是非常基本的

a = [4,6,7,8,2,6,8,9]
n = 13

for i in range(len(a)):
    t = a[i] * n
    print(t)
我如何计算出时间复杂度是多少?我是新手,所以详细的答案对我的学习非常有帮助


谢谢

时间复杂度是
O{m}
其中
m
a
的长度

你可能想知道为什么它不是
O{C*m}
其中
C
是常数系数?在术语
C*m
中,当
m
变大时,
m
的贡献将使
C
的贡献相形见绌,因为
C
不会增长。因此,我们将系数替换为
1

a = [4,6,7,8,2,6,8,9]
n = 13

for i in range(len(a)):  # scales with `m`
    t = a[i] * n         # `*` is atomic operation on modern processors
    print(t)             # constant operation

这将是一个简单的O(n)。n来自循环,循环重复n次。循环中只有O(1)操作。

它将根据循环的实现而有所不同

 for (let i = 0; i < 4; i++) {
  statement1;
  statement2;
}
for(设i=0;i<4;i++){
声明1;
声明2;
}
类似这样的东西将是O(4),它与O(1)几乎相同

如果有一个大小为n的变量。当您在其上循环时,大小将为O(n)

对于下面这样的嵌套循环,它将是O(n^2)

for(设i=0;i

这是很好的解释

您的算法的时间复杂度很大
O(n)
,因为它重复
n
次,然后停止执行。好的,这是单个for循环的时间复杂度。请告诉我们你相信的正确答案是什么。谢谢@superbrain@superbrain对不起,你的论点在这里不合理。谈到大o符号,我们通常使用
n
。因此,无论该程序中的变量名是什么,它都不应该改变命名符号。@superbrain这个网站依赖于社区参与,所以我不希望每个贡献者都能做出积极的贡献。我所能做的就是举例说明。“人们会做他们想做的任何事情。”超级大脑我相信问题的关键是让OP知道如何获得他的程序的时间复杂度,他提到他是新来的。答案有n的标准命名,作为自然数。现在,无论算法中的变量名是什么,都不会改变这一点。如果程序中有所有的变量名呢?当然,这个名字不会改变人们对答案作为事实的接受程度,因为这并不是这里要问的问题。最好不要把它用于完全不同的东西。@superbrain你是不是来这里,并且每个答案都是
-1
?这不是建设性的。不确定指出错误并纠正错误是如何建设性的。顺便说一句,您在代码的注释中忘记了一个。建设性的是发布注释。发布
-1
投票试图扼杀答案。这没用。我发现一个错误的答案“没用”,而这正是投反对票的目的。
for (let i = 0; i < n; i++) {
  statement1;

  for (let j = 0; j < m; j++) {
    statement2;
    statement3;
  }
}