积累了一点对于算法时间复杂度的算法方法
使用题目和总结的方法进行分享
以下算法的时间复杂度为
void fun(int n){
int i = 1;
while(i<=n){
i=i*2;
}
}
解析:
找出基本运算i=i*2
所以:
2^t<=n,反解,t<log2n(2为底数)
所以时间复杂度为O(log2n)
总结:
设执行次数为t
得到t与n 的关系,简化为
t<f(n),则为O(n),
积累了一点对于算法时间复杂度的算法方法
使用题目和总结的方法进行分享
以下算法的时间复杂度为
void fun(int n){
int i = 1;
while(i<=n){
i=i*2;
}
}
解析:
找出基本运算i=i*2
所以:
2^t<=n,反解,t<log2n(2为底数)
所以时间复杂度为O(log2n)
总结:
设执行次数为t
得到t与n 的关系,简化为
t<f(n),则为O(n),