Algorithm big-O中while循环的时间复杂度

Algorithm big-O中while循环的时间复杂度,algorithm,time-complexity,big-o,Algorithm,Time Complexity,Big O,我很难用输入n来表示简单while循环的时间复杂度 只要i

我很难用输入n来表示简单while循环的时间复杂度

只要i
func(n):
i=1
t=1
而(i
我的问题是,如何用大O表示法表示该算法的时间复杂度

本质上,循环执行“t的最终值”次

你已经走到一半了。你知道循环执行t次,现在你只需要求解t

当1..t之和大于或等于n时,循环将结束。通过求解,我们可以表示为

t*(t-1)/2 >= n
通过重新排列方程,用n表示t,我们得到

t >= 1/2 (1 - sqrt(1 + 8 n))
但是,我们也知道循环在满足不等式的t的最低(第一)值处结束。让我们称之为tn。如果tn是满足不等式的第一个值,那么tn-1是满足相反不等式的最后一个值

tn - 1 <= 1/2 (1 - sqrt(1 + 8 n))
tn-1
本质上,循环执行“t的最终值”次

你已经走到一半了。你知道循环执行t次,现在你只需要求解t

当1..t之和大于或等于n时,循环将结束。通过求解,我们可以表示为

t*(t-1)/2 >= n
通过重新排列方程,用n表示t,我们得到

t >= 1/2 (1 - sqrt(1 + 8 n))
但是,我们也知道循环在满足不等式的t的最低(第一)值处结束。让我们称之为tn。如果tn是满足不等式的第一个值,那么tn-1是满足相反不等式的最后一个值

tn - 1 <= 1/2 (1 - sqrt(1 + 8 n))
tn-1看哪一个应该给你一个提示,告诉你如何计算循环将运行多少次看哪一个应该给你一个提示,告诉你如何计算循环将运行多少次