Python 寻找算法的BigO

Python 寻找算法的BigO,python,time-complexity,big-o,Python,Time Complexity,Big O,我试图学习bigO符号和算法的时间复杂性。我很难验证我的计算是否符合以下算法: def f(n): i = 0 n = n[0] while i < n: j = n while j > 1: m = i + j print(m, " ", i) j = j // 2 i = i + 1 def(n): i=0 n=n[

我试图学习bigO符号和算法的时间复杂性。我很难验证我的计算是否符合以下算法:

def f(n):
    i = 0
    n = n[0]
    while i < n:
        j = n
        while j > 1:
            m = i + j
            print(m, " ", i)
            j = j // 2
        i = i + 1
def(n):
i=0
n=n[0]
而i1时:
m=i+j
打印(m,“,i)
j=j//2
i=i+1
我正在计算算法,使其bigO为O(1)。
有没有一种简单的方法来计算算法的bigO而不必计算出来?

您可以通过计算/计算算法在最坏情况下(平均情况和最佳情况下有不同的符号)将要执行的“循环”的“进程”总数来计算big-O

所以如果你有这样的代码

for(int i=0;i
您需要一个最坏的
n
周期来完成这段代码,因为您可能循环它的次数最多是
n
次。其中最大的O是
O(n)

现在如果你有一段代码

for(int i=0;i
这其中的大O是
O(n*k)
,因为您循环代码
n
次,但在其中您循环另一个
k
次,执行
k
-循环
n


请原谅我使用了C风格的代码,但是我的Python已经很生锈了。

您好!除非您指定时间复杂度是根据什么来衡量的,否则这个问题实际上是无法回答的。您是在测量
n
的长度、
n[0]
的值还是其他方面?请(与an)分享您迄今为止的工作,并解释您是如何达到
O(1)
的上限的。