时间复杂度O(n)的计算

我们通过以下几个例子来说明:时间复杂度计算方法:

        for (i = 0; i < N; ++i)
                {
                   printf ("%d\n",i);    
                }

这个程序的频度是n,所以它的O(n)=n

        i = 1;
        while (i <= n)
                i = i*2;

这个程序的运行的次数取决于i,2的i次方<=n,所以频度是log2n,O(n)=log2n

        for (i = 0; j < N; ++i)
                {
                        for (j = 5; j < N; ++i)
                                {
                                        printf ("%d\n", j);
                                }    
                }

这个程序频度是n*(n-5),所以O(n)=n*n

int fact (int n)
{
        if (n == 1)
                {
                        return 1;
                }
        else
                return n*fact(n-1);
}

这个程序是递归程序,O(n)=n