博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
减而治之
阅读量:5830 次
发布时间:2019-06-18

本文共 817 字,大约阅读时间需要 2 分钟。

  • 复杂度分析:
    • :线性时间复杂度
    • ,其中,则称为“多项式时间复杂度算法”
      • 多项式时间复杂度被视作一个具有特殊意义的复杂度级别:多项式的运行时间成本,在实际应用中一般被认为是可接受的
      • 若问题存在一个复杂度在此范围以内的算法,则称该问题是可有效求解的或易解的
    • :指数时间复杂度算法
      • 问题规模较大后,指数复杂度算法的实际效率将急剧下降,无法正在应用于实际问题中,即不是有效算法
  • 复杂度层次:

  • 递归
    • 线性递归:每一层次上至多只有一个实例,且它们构成一个线性的次序关系
      • 减而治之:递归每深入一层,待求解的问题的规模都缩减一个常数,直至最终蜕化为平凡的小问题

  • 递归分析
    • 数组求和的递归形式:
int sum(int []a,  n){    if ( 1 > n) {        return  0;    }    else {        return A[n-1] + sum(a, n-1);    }}
    • 递归跟踪:

               按照以下规则,将递归算法的执行过程整理为图的形式:

      • 算法的每一递归实例都表示为一个方框,其中注明了该实例调用的参数
      • 若实例N调用实例M,则在 N、M对应的方框之间添加一条有向联线

               按上述方法,递归求和的算法过程如下:

      • 时间复杂度 = 递归实例的调用次数 * 每个递归实例的时间消耗 = 递归实例的调用次数 * (递归实例的创建、执行、销毁),又递归实例的创建、销毁、调用有操作系统完成,可近似为常数,即

                              时间复杂度 = 递归实例的调用次数 * (递归实例的执行) =

      • 空间复杂度 = 递归实例的调用次数 * 每个递归实例的空间消耗 =
    • 递推方程:通过对递归模式的数学归纳,导出复杂度定界函数的递推方程(组)及其边界条件,从而将复杂度的分析,转化为递归方程(组)的求解
      • 递推方程:

      • 时间复杂度:
      • 空间复杂度:

转载于:https://www.cnblogs.com/joh-n-zhang/p/5766970.html

你可能感兴趣的文章
自己遇到的,曾未知道的知识点
查看>>
P1382 楼房 set用法小结
查看>>
分类器性能度量
查看>>
windows 环境下切换 python2 与 pythone3 以及常用命令
查看>>
docker 基础
查看>>
解决灾难恢复后域共享目录SYSVOL与NELOGON共享丢失
查看>>
Lync 客户端单独安装激活步骤
查看>>
eclipse集成weblogic开发环境的搭建
查看>>
写一个bat文件,删除文件名符合特定规则,且更改日期在某
查看>>
【jc2-1】 网络层IP编址
查看>>
我的友情链接
查看>>
apahce安装时的APR问题解决方法
查看>>
Citrix今年9月份就会出XenServer的新版本
查看>>
MySQL数据库高并发优化配置
查看>>
写Use Case的一种方式,从oracle的tutorial抄来的
查看>>
【C#】protected 变量类型
查看>>
Shell下支持变量的重复字符串
查看>>
Ubuntu解压
查看>>
爬虫_房多多(设置随机数反爬)
查看>>
藏地密码
查看>>