zoukankan      html  css  js  c++  java
  • 数据结构与算法-复杂度分析

    数据结构和算法本身要解决程序 运行“快”,空间“省”的问题

    执行效率是一个重要的考核标准

    主要看时间、空间复杂度分析

    时间复杂度分析 (大0复杂度表示法)

    int cal (int n){

      int a = 0 ;

      int i=0 ;

      for (;i<=n;i++)

      {

        a = a + i;

      }

      return  a;

    }

    假设 每行执行的时间为unittime ;  则上述代码执行的时间为 T (n) = (1+1+n+n+1)*unittime = (2n+3)*unittime 

    再复杂一些代码分析方法也是一样,所以代码执行时间T(n)与每行代码执行的次数成正比

    1、只关注循环执行次数最大的代码

    2、总复杂度等于量级最大的那段代码复杂度

    3、嵌套代码的复杂度等于嵌套内外代码复杂度的乘积

    常见的复杂度量级:

    O(1),O(n),O(logn),O(nlogn),O(n2),O(n!), O(2n)

    i = 1;

    while (i <=n){

      i = i * 2;

    }

    执行次数 : 类似等比数列, 2的0次方 + 2的一次方+2的二次方+.....2的X次方= n 

    求x = logn

    时间复杂度还有几个其他概念:最好情况时间复杂度、最坏情况时间复杂度、平均情况复杂度、均摊时间复杂度

     空间复杂度:

  • 相关阅读:
    LRU算法简介
    linux下安装nginx+php+mysql环境 详细教程
    CentOS 6.6编译安装Nginx1.6.2+MySQL5.6.21+PHP5.6.3
    unicode 格式 转汉字
    js 操作cookie
    哈希函数
    php商城秒杀活动
    php 栈、 出栈、入栈
    php单例模式
    封装PHP增删改查方法
  • 原文地址:https://www.cnblogs.com/yingchen/p/9747642.html
Copyright © 2011-2022 走看看