(一)递归树法

<1>计算递归式T(n)=2T(n/2)+n^2的时间复杂度。
       考虑递归式:
       T(n)=2T(n/2)+n^2
       可将其化为:
      T(n)=T(n/2)+T(n/2)+n^2
      于是可以画一棵递归树,对于一个节点,节点的值为非函数项,再将式中每一个函数项向下迭代,式中有几个函数项,递归树就是几叉树,且有logn层,把每一行所有节点的和写在右边,如下图所示:

然后,右边所有数之和(一个含n的表达式)即为该式的复杂度。
        如图,该图中右边所有数之和为
        (1+12+(1/2)^2+(1/2)^3+...)∗n^2=2n^2
        所以,T(n)=T(n/2)+T(n/2)+n^2的时间复杂度为Θ(n^2)

<2>例题:计算递归式T(n)=T(n/3)+T(2n/3)+n的复杂度。

(二)公式法

<1>主定理

例题:

<其他:>

程序员应了解的那些事(4)求递归算法的时间复杂度相关推荐

  1. 程序员应了解的那些事(107)之图灵完备

    目录 什么是图灵机 图灵机的结构包括以下几个部分: 图灵机结构 图灵机可以解决什么问题 什么是图灵完备(对图灵完备的描述) Brainfuck 语言:直观理解图灵完备 图灵机的组成(附) 图灵完备是对 ...

  2. C++程序员应了解的那些事(103)发生死锁必须满足四个条件:互斥条件/请求与保持条件/不剥夺条件/循环等待条件

    要想发生死锁有 4 个缺一不可的必要条件: 第 1 个叫互斥条件,它的意思是每个资源每次只能被一个线程(或进程,下同)使用,为什么资源不能同时被多个线程或进程使用呢?这是因为如果每个人都可以拿到想要的 ...

  3. C++程序员应了解的那些事(116)~单引号 VS 双引号

    目录 一.简述单引号和双引号 二.知识点拔-1 三.程序实例分析Step-1 四.程序实例分析Step-2 五.错误示例:字符和字符串混淆 六.知识点拔-2 一.简述单引号和双引号 C语言中的单引号用 ...

  4. 嵌入式程序员应知道的基本问题-C语言(zz)

    来源:21ICbbs  作者:lhf C语言测试:想成为嵌入式程序员应知道的0x10个基本问题 其中少量灰色的文字是我添加的,表达一些我的看法,很不成熟,希望朋友们指正. C语言测试是招聘嵌入式系统程 ...

  5. 程序员应知——学习、思考与分享

    有人说,程序员是个苦差事,一辈子总是要不停地学习,学习新的技术,学习新的架构,学习新的工具,一旦一段时间不学习,就会发现其他人嘴里冒出来的新鲜词,自己已经搞不懂是什么了. 的确,作为程序员,学习很重要 ...

  6. 程序员应学习蜡笔小新的心态

    程序员应学习蜡笔小新的心态,今天的仔细看了看的蜡笔小新,然后放在拖布上,车门打开了,我和妈妈回到家后,唐门是一个非常酷,因为我知道此时无声胜有声,里面一棵棵缀满彩色电灯的大枞树闪着奇异的光彩,仔细看了 ...

  7. php程序员应具有的7种能力

    php程序员应具有什么样的能力,才能更好的完成工作,才会有更好的发展方向呢?在中国我想您不会写一辈子代码的,那样不可能,过了黄金期,您又怎么办呢?看了本文后,希望对您有所帮助. 一,php能力 1,了 ...

  8. 程序员应该知道的一二事(4)

    程序员应该知道的一二事 科普 开源 脚本 脚本语言和编程语言的区别是什么? 组成原理 先定义后赋值的理由 网络原理 五层 科普 开源 开源即开放源代码. 开放源代码(Open source code) ...

  9. 转载:程序员应知——团队精神

    转载:http://blog.csdn.net/lingyun2005/archive/2010/08/09/5797890.aspx 程序员应知--团队精神     写在前面:前几天终于看完了< ...

最新文章

  1. [转] Gradle: 此时不应有 Androidandroid-studiosdk oolslib\find_java.exe。解决方法
  2. 原创 | 浅议数据资产市场
  3. Win7下运行VC程序UAC权限问题
  4. Luogu 4284 [SHOI2014]概率充电器
  5. hbase rest api接口链接管理【golang语言版】
  6. 视觉SLAM笔记(6) 坐标系
  7. c语言随机数表,C语言随机数
  8. 010,spring boot 文件上传
  9. 车用总线技术 | J1939协议实用指南与J1939数据记录方案
  10. 基于ricequant隐马尔科夫模型量化交易
  11. 正定矩阵与半正定矩阵定义性质与理解
  12. html5指标源码,通达信牛股起爆点副图指标
  13. B Start - 哔哩哔哩校招入职成长营
  14. 财务大数据比赛代码例子
  15. matlab蒙特卡罗方法求体积_蒙特卡罗方法详细讲解与MATLAB实现.ppt
  16. mysql多表查询详解
  17. 干货|可视化设计:百度地图路线
  18. Codeforces Round#466 E. Cashback
  19. 计算机软件系统崩溃,系统崩溃了怎么办 如何快速还原崩溃的系统【步骤方法】...
  20. Python爬虫实战三 | 蓝奏网盘抓取网盘链接信息

热门文章

  1. java中10d是什么意思_java程序员面试自我介绍
  2. 谈谈小程序的赚钱方式
  3. Windows应用程序设计
  4. hashMap的遍历方式
  5. 微信授权,修改本地 host
  6. Ariane和riscv-gnu-toolchain工具链的安装
  7. Docker安装和部署
  8. java表格怎样设置内间距_如何设置表格的间距和背景等属性
  9. res.send和res.sendFile
  10. 2、controller介绍