计算算法复杂度的方法

2018-12-15  本文已影响6人  小幸运Q

代码示例:

void qingwa(int n)
{

    if(n!=0)
    {

        qingwa(n/2);
        printf("呱");
        qingwa(n/2);

    }
}

计算过程:

答案为O(n)


以下列代码为例:

f(n){
  f(n/2);
}
f(n)=f(n/2)+1;               // +1是因为循环执行次数为一次,正常情况下都是+1
f(n)=f(n/4)+2;
f(n)=f(n/2^k)+k;

k=log2(n);
f(n)=f(1)+log2(n)=log2(n)+1;

所以时间复杂度为log2(n)

上一篇 下一篇

猜你喜欢

热点阅读