小编zak*_*els的帖子

函数的时间复杂度

我试图找出函数的时间复杂度(Big-O)并试图提供适当的理由.

第一个功能是:

r = 0
# Assignment is constant time. Executed once. O(1)
for i in range(n):
    for j in range(i+1,n):
        for k in range(i,j):
            r += 1
            # Assignment and access are O(1). Executed n^3
Run Code Online (Sandbox Code Playgroud)

像这样.

我看到这是三重嵌套循环,所以它必须是O(n ^ 3).但我认为我的推理非常薄弱.我真的不知道这里的三重嵌套循环内部发生了什么

第二个功能是:

i = n
# Assignment is constant time. Executed once. O(1)
while i>0:
    k = 2 + 2
    i = i // 2
    # i is reduced by the equation above per iteration.
    # so the assignment and access …
Run Code Online (Sandbox Code Playgroud)

python time-complexity

6
推荐指数
1
解决办法
957
查看次数

标签 统计

python ×1

time-complexity ×1