• 数据结构与算法-复杂度分析


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

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

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

    时间复杂度分析 (大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

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

     空间复杂度:

  • 相关阅读:
    为用户分配角色 C#
    测试常用指标及工具
    MySQL Performance Schema
    CentOS7
    sysbench
    Fedora 的截屏功能
    Fedora 26 安装搜狗拼音输入法 sogoupinyin
    下载 GitHub 上保存在 AWS 的文件
    MySQL 架构
    Vagrant
  • 原文地址:https://www.cnblogs.com/yingchen/p/9747642.html
Copyright © 2020-2023  润新知