假设我有这样一个程序:
def fn(array,num):
for i in range(0,len(array)):
if(i==num):print i
for i in range(o,len(array)):
for j in range(0,i):
if(i*j==num):print i,j
第一个循环的时间复杂度为O(n)。 第二个循环的时间复杂度为O(n * n)。
总的时间复杂度将是O(n)+ O(n ^ 2)= O(n ^ 2) 时间。(这样正确吗?)
此外,由于我们需要n个块来存储n个元素,因此空间复杂度将为O(n)。 (这样正确吗?) 这是分析运行时间和空间复杂度的正确方法吗?我可以分析常见排序算法和数据结构的时间复杂度,但对于一般程序分析它们的时间复杂度有些困难。谢谢!