简单理解算法的大O表示法

理论基础
  1. 算法最终要编译成具体的计算机指令
  2. 每一条指令在具体的计算机, cpu上的运行时间是固定的
  3. 某一个算法通过统计具体执行了多少条计算机指令就可以推导出算法的复杂度
计算三个算法的时间复杂度
long sum1(int n) //2n+4 ----> O(n)
{
    long ret = 0;   //1
    int* array = (int *)malloc(n*sizeof(int));  //1
    int i = 0;  //1

    for(i=0; i< n; i++) //n
    {
        array[i] = i+1;
    }

    for(i=0; i<n; i++)  //n
    {
        ret += array[i];
    }

    free(array);    //1
    return ret;
}

long sum2(int n)    //n+2 ----> O(n)
{
    long ret = 0;   //1
    int i = 0;  //1
    
    for(i=0; i<n; i++)  //n
    {
        ret +=i;
    }

    return ret;
}

long sum3(int n)    //2 O(1)
{
    long ret = 0;   //1

    if(n>0)
    {
        ret = (1+n)*n / 2; //1
    }

    return ret;
}

总结:
上面3个算法的时间复杂度分别为: O(n), O(n), O(1)

refer to:
视频: 算法的基本概念和大O表示法 传智扫地僧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 算法的时间复杂度和空间复杂度-总结通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这...
    Explorer_Mi阅读 1,465评论 0 1
  • 通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关...
    西域小码阅读 1,906评论 0 11
  • 算法复杂度 时间复杂度 空间复杂度 什么是时间复杂度 算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗...
    KODIE阅读 3,307评论 0 9
  • 居家过日子,剩饭是避免不了的,只要开动脑筋就能把这些剩饭巧妙利用,变身抢手美食。剩馒头大家一般都会煎成馒头干或者炒...
    幸福花海阅读 285评论 0 0
  • 初入社会,我们总是被告知一句话,跟对人做对事。其实,在职场上跟对人是很重要的,因为你要从你跟的那个人身上学东西,长...
    P尐c阅读 726评论 0 1