def loopy_loop(n):
for i in range(n):
for j in range(i):
if j*j > i:
break
其中n是正整数。你知道吗
假设我取n=10
外循环肯定会运行n次(n=10次) 内部循环将基于这些值运行。你知道吗
n=0,内环运行0次
n=1,内部循环运行一次
n=2,内环运行3次
n=3,内部循环运行4次(直到j=3,9>;3)
n=4,内部循环也运行4次
以此类推,直到n=9,它将运行5次
我很难把所有的东西放在一起,用big O表示法来表示运行时。有没有一套算法可以帮助我处理这个特定的代码片段?你知道吗
外循环运行
n
次。你知道吗内环运行
sqrt(i)
次(因为当i
给定时,当j**2
到达i
时它停止),但i
增长(大致)类似于n
(n//2
平均值)复杂性是
O(n**1.5)
(n
乘以n
的平方根)更准确的估计:
结果(计数与估计):
相关问题 更多 >
编程相关推荐