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

作者: ahking17 | 来源:发表于2017-02-28 14:44 被阅读192次
理论基础
  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表示法 传智扫地僧

相关文章

  • 简单的时间复杂度计算法则

    简单算法时间复杂度计算 大O表示法 像前面用O( )来体现算法时间复杂度的记法,我们称之为大O表示法。 算法复杂度...

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

    理论基础 算法最终要编译成具体的计算机指令 每一条指令在具体的计算机, cpu上的运行时间是固定的 某一个算法通过...

  • 【python】二分法和选择排序法的实现

    一、大O表示法 学算法就绕不开大O表示法,大O法可以告诉我们算法的时间和空间复杂度。 我们先聊点简单的,请你从1数...

  • 算法复杂度

    一、大O表示法 算法的时间复杂度通常用大O符号表述 大O表示法 : ,n为算法所需要执行的操作数 该表示法的操作数...

  • 读书笔记:图解算法

    读书笔记:图解算法 算法简介 二分查找 O(log n) 大O表示法 大O表示法 让你能够比较操作数,它指出了算法...

  • 大O表示法

    讨论算法必提到O(),不太懂,尝试理解一下。 大O表示法 描述算法的性能和复杂度。常用O表示。一般考虑为cpu时间...

  • 简单理解算法时间复杂度

    简单理解算法时间复杂度 前言 这里的解释说明都是从知乎上 《如何理解算法时间复杂度的表示法O(n^2) 、O(n)...

  • 大O表示法

    大O表示法 是一种特殊的表示法,指出了算法的速度有多快。大O表示法指出了算法有多快。例如,假设列表包含n 个元素。...

  • 学习《算法图解》

    1.大O表示法是一种特殊的表示法,指出了算法的速度有多快。O(n) 小结: 二分查找的速度比简单查找快得多。 O ...

  • 算法——大O表示法

    定义:一种特殊的表示法,指出了算法的速度有多快。用于表示运行时间如何随列表增长而增加。 场景:例如,假设列表包含N...

网友评论

    本文标题:简单理解算法的大O表示法

    本文链接:https://www.haomeiwen.com/subject/unpxgttx.html