zoukankan      html  css  js  c++  java
  • 时间复杂度

    时间复杂度

    算法 解决问题的步骤, 解决问题的有限执行语句序列

    什么好的算法??

    耗时少,占用空间少的算法是好算法.

     算法时间评估前提:数据量相同, 算法的语句执行时间默认相同,最后评估算法的语句执行次数

    常见的大O记法

    常量阶:O(1)

    线性阶:O(n)

    平方阶:O(n^2)

    指数阶:O(2^n)

    对数阶O(log_2N)

    线性对数阶O(Nlog_2N)

    void  bubble1(int a[],int n)

    {

      int i,j,temp

      for(i=1i<ni++)             // 2n+1

        for(j=0j<n-ij++)         // n-1 + n-2 + n- 3 + ... + 1 =                                     (n - 1 + 1)/2 = n/2   n^2/2

          if (a[j]>a[j+1])           //  n^2/2

            {

              temp=a[j];            //  

              a[j]=a[j+1];          //  

              a[j+1]=temp;          //  

           }

        

      for(i=0i<ni++)             // n

        printf(%d,a[i]);        // n

    }

    最好的情况  f(n) = 2n+1 + n^2 + 2n  T(n) = O(n^2)

    最坏的情况  f(n) = 2n+1 + n^2/2 + 2n^2 + 2n T(n) = O(n^2)

    学如逆水行舟,不进则退。 博客园技术交流群 群 号:1073255314 (本群没人,刚刚建立 -_-!!! )
  • 相关阅读:
    Hive窗口函数
    自然周与自然月的Hive统计SQL
    Spark中的Join类型
    随机生成验证码类
    mysql看视频笔记
    sql工作记录
    mysql和sqlserver的区别
    mysql的安装配置
    把一个数组遍历倒序放到另一个数组中,数组取值是c:out value
    Echarts雷达代码
  • 原文地址:https://www.cnblogs.com/Mj-NaijAm/p/13612982.html
Copyright © 2011-2022 走看看