关于算法时间复杂度的一些问题
void fun(int n)
{
int i=0, s=0;
while(s<n)
{
i++;
s=s+i;;
}
}
该算法的时间复杂度是多少,如何计算的
回答
O(logn) :
假设t次结束循环 s= (1+2+3+...+t)=(1+t)*t/2>=n
去掉常数项: t^2 >= n
t >= log(n)
时间复杂度 O(logn)
void fun(int n)
{
int i=0, s=0;
while(s<n)
{
i++;
s=s+i;;
}
}
该算法的时间复杂度是多少,如何计算的
O(logn) :
假设t次结束循环 s= (1+2+3+...+t)=(1+t)*t/2>=n
去掉常数项: t^2 >= n
t >= log(n)
时间复杂度 O(logn)