简单递归函数算法复杂度分析

简单递归函数算法复杂度分析_第1张图片

简单递归函数算法复杂度分析_第2张图片

(1)计算x的n次方的幂运算

double pow( double x, int n ){
    assert( n >= 0 );    
    if( n == 0 )        
        return 1.0;    
    double t = pow(x, n/2);    //奇数
    if( n%2 )        
        return x*t*t;    
    return t*t;
}

递归深度:logn
时间复杂度:O(logn)

(2)递归树

int f(int n)
{    
    assert( n >= 0 );    
    if( n == 0 )        
        return 1;    
    return f(n-1) + f(n-1); 
}

指数级的算法,时间复杂度O(2^n)

(3)递归中多次递归调用

简单递归函数算法复杂度分析_第3张图片

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(数据结构与算法)