Algorithm 算法的时间复杂度分析
嗨,我正试图分析这个算法的时间复杂度,但我很难解开并计算最终循环将执行多少次。我意识到第一个循环是log(n),但在那之后,我似乎无法得到一个计算结果良好的和。以下是算法:Algorithm 算法的时间复杂度分析,algorithm,loops,time,time-complexity,Algorithm,Loops,Time,Time Complexity,嗨,我正试图分析这个算法的时间复杂度,但我很难解开并计算最终循环将执行多少次。我意识到第一个循环是log(n),但在那之后,我似乎无法得到一个计算结果良好的和。以下是算法: for(int i = 1; i <= n; i = 2*i){ for(int j = 1; j <= i; j = 2*j){ for(int k = 0; k <= j; k++){ // Some elementary operation here.
for(int i = 1; i <= n; i = 2*i){
for(int j = 1; j <= i; j = 2*j){
for(int k = 0; k <= j; k++){
// Some elementary operation here.
}
}
}
for(inti=1;i它是O(n)
1+2+4+…+2^N==2^(N+1)-1
最后一个循环,对于特定的j,执行j次
对于特定的i,内部2个循环执行1+2+4+…+i次,大约等于2*i
因此,总的执行时间是1*2+2*2+4*2+…+N*2,大约是4*N.的可能重复