小白很迷惑 (a) (1 point) for i in range(1, n): for j in range(i, n): for k in range(i, j): honk() (b) (1 point) for i in range(1, n): for j in range(i ** 2, (i + 1) ** 2): honk() (c) (1 point) for i in range(1, n): for j in range(i, n // i): honk()
时间复杂度表示方法:「 大 O 符号表示法 」
公式:T [n] = O (f (n))
f (n) 表示每行代码执行次数之和,而 O 表示正比例关系,这个公式又叫“算法的渐进时间复杂度”。
通过「 大 O 符号表示法 」,图1 的时间复杂度为:O (n)
● 常数阶 O (1)
图2
有时候在 Python 中看到存在 ++i 这种形式,这其实不是自增,只是简单的表示正负数的正号而已。正正得正,负负得正,所以 ++i 和 --i 都是 i 。(有Java基础的老铁注意啦)
无论代码执行了多少行,只要是没有循环等复杂结构,那这个代码的时间复杂度就都是 O (1)
图2代码在执行的时候,它消耗的时候并不随着某个变量的增长而增长,那么无论这类代码有多长,即使有几万几十万行,都可以用 O (1) 来表示它的时间复杂度。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632