我的代码中的时间复杂度是多少?

时间:2016-09-28 05:41:01

标签: time-complexity

    #include<stdio.h>
    int main()
    {
        int T,i,sum,n;    //Here T is the test case
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d",&n);
            sum=0;
            for(i=1;i<=n;i++)
                sum=sum+i;
            printf("%d\n",sum);
        }
        return 0;
    }

如果我将测试用例输入为T=50n=100。 哪个是正确的:时间复杂度O(n)=100或时间复杂度O(n)=100*50

1 个答案:

答案 0 :(得分:2)

Big-O分析的概念并非特定于某些值。通常用Big-Oh表示的Time Complexity不包括系数和低阶项。在您的代码中,时间复杂度为O(T * N)。永远不会是O(50 * 100)或O(100)。没有这样的符号。任何以恒定时间运行的算法(代码中为50 * 100)将表示为O(1)。

在一个班轮中,时间复杂度永远不会是一个值,它将表示为一个取决于输入大小的函数。

另外,为了清楚了解,我建议您阅读本教程:Time Complexity Analysis by MyCodeSchool