程序员应了解的那些事(4)求递归算法的时间复杂度
(一)递归树法
<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)求递归算法的时间复杂度相关推荐
- 程序员应了解的那些事(107)之图灵完备
目录 什么是图灵机 图灵机的结构包括以下几个部分: 图灵机结构 图灵机可以解决什么问题 什么是图灵完备(对图灵完备的描述) Brainfuck 语言:直观理解图灵完备 图灵机的组成(附) 图灵完备是对 ...
- C++程序员应了解的那些事(103)发生死锁必须满足四个条件:互斥条件/请求与保持条件/不剥夺条件/循环等待条件
要想发生死锁有 4 个缺一不可的必要条件: 第 1 个叫互斥条件,它的意思是每个资源每次只能被一个线程(或进程,下同)使用,为什么资源不能同时被多个线程或进程使用呢?这是因为如果每个人都可以拿到想要的 ...
- C++程序员应了解的那些事(116)~单引号 VS 双引号
目录 一.简述单引号和双引号 二.知识点拔-1 三.程序实例分析Step-1 四.程序实例分析Step-2 五.错误示例:字符和字符串混淆 六.知识点拔-2 一.简述单引号和双引号 C语言中的单引号用 ...
- 嵌入式程序员应知道的基本问题-C语言(zz)
来源:21ICbbs 作者:lhf C语言测试:想成为嵌入式程序员应知道的0x10个基本问题 其中少量灰色的文字是我添加的,表达一些我的看法,很不成熟,希望朋友们指正. C语言测试是招聘嵌入式系统程 ...
- 程序员应知——学习、思考与分享
有人说,程序员是个苦差事,一辈子总是要不停地学习,学习新的技术,学习新的架构,学习新的工具,一旦一段时间不学习,就会发现其他人嘴里冒出来的新鲜词,自己已经搞不懂是什么了. 的确,作为程序员,学习很重要 ...
- 程序员应学习蜡笔小新的心态
程序员应学习蜡笔小新的心态,今天的仔细看了看的蜡笔小新,然后放在拖布上,车门打开了,我和妈妈回到家后,唐门是一个非常酷,因为我知道此时无声胜有声,里面一棵棵缀满彩色电灯的大枞树闪着奇异的光彩,仔细看了 ...
- php程序员应具有的7种能力
php程序员应具有什么样的能力,才能更好的完成工作,才会有更好的发展方向呢?在中国我想您不会写一辈子代码的,那样不可能,过了黄金期,您又怎么办呢?看了本文后,希望对您有所帮助. 一,php能力 1,了 ...
- 程序员应该知道的一二事(4)
程序员应该知道的一二事 科普 开源 脚本 脚本语言和编程语言的区别是什么? 组成原理 先定义后赋值的理由 网络原理 五层 科普 开源 开源即开放源代码. 开放源代码(Open source code) ...
- 转载:程序员应知——团队精神
转载:http://blog.csdn.net/lingyun2005/archive/2010/08/09/5797890.aspx 程序员应知--团队精神 写在前面:前几天终于看完了< ...
最新文章
- [转] Gradle: 此时不应有 Androidandroid-studiosdk oolslib\find_java.exe。解决方法
- 原创 | 浅议数据资产市场
- Win7下运行VC程序UAC权限问题
- Luogu 4284 [SHOI2014]概率充电器
- hbase rest api接口链接管理【golang语言版】
- 视觉SLAM笔记(6) 坐标系
- c语言随机数表,C语言随机数
- 010,spring boot 文件上传
- 车用总线技术 | J1939协议实用指南与J1939数据记录方案
- 基于ricequant隐马尔科夫模型量化交易
- 正定矩阵与半正定矩阵定义性质与理解
- html5指标源码,通达信牛股起爆点副图指标
- B Start - 哔哩哔哩校招入职成长营
- 财务大数据比赛代码例子
- matlab蒙特卡罗方法求体积_蒙特卡罗方法详细讲解与MATLAB实现.ppt
- mysql多表查询详解
- 干货|可视化设计:百度地图路线
- Codeforces Round#466 E. Cashback
- 计算机软件系统崩溃,系统崩溃了怎么办 如何快速还原崩溃的系统【步骤方法】...
- Python爬虫实战三 | 蓝奏网盘抓取网盘链接信息