【自然语言处理】——(2)时间复杂度和空间复杂度[任何AI工程师必须要深入理解的概念]

int a=0,b=0;
for(i=0;i<N;i++){#O(N)+O(N)=O(N)

    a=a+rand();   #N*1个操作=O(N)
    b=b+rand();   #N*1个操作=O(N)
}
for(j=0;j<N/2;j++){
    b=b+rand(); #N/2*1个操作==1/2*O(N)=O(N)
}


#时间复杂度O(N)
#空间复杂度 2个单位的内存空间=O(1)  constant space complexity
int a=0;
for(i=0;i<N;i++){ 
    for(j=N;j>i;j--){
        a=a+i+j;
    }

}

i=0:    j=N……1    N
i=1:    j=N……2    N-1
i=2:    j=N……3    N-2  
…………………………………………………………
i=N-1:    j=N       1

total=1+2+3+……N=N*(N+1)/2=N*N/2+N/2
     =1/2*O(N^2)+1/2*O(N)=O(N^2)+O(N)=O(N^2)
int a=0,i=N;
while(i>0){
    a+=i; #1个操作
    i/=2; #1个操作

}
N=40;i=40

i=20 2
i=10 2
i=5  2
i=2  2
i=1  2
i=0  2
terminate
2*log(N)=2*O(logN)=O(log N)

每当说算法X的效率要高于Y时指的是?  时间复杂度

猜你喜欢

转载自blog.csdn.net/qq_41251963/article/details/105876647