主定理(主方法)求解递归式
1、主方法使用条件
用主方法求解递归式有条件,必须要求递归式为以下形式:
其中a>=1,b>1,f(n)渐进趋正,意为对足够大的n,f(n)是正的,即n>= n 0 n_0 n0时,f(n)>0。
其中 n为问题规模, a为递推的子问题数量, n/b 为每个子问题的规模(假设每个子问题的规模基本一样), f(n)为递推以外进行的计算工作。
2、主方法具体使用
**核心是比较f(n)与n^(logba)的大小。**根据大小关系可以分为三种情况:
3、举例
Ex1:T(n)=4T(n/2)+n
这里f(n)=n, n ( l o g b a ) = n 2 n^(logba)=n^2 n(logba)=n2,f(n)小于n^(logba),所以为第一种情况,T(n)=θ( n 2 n^2 n2).
Ex2:T(n)=4T(n/2)+ n 2 n^2 n2
这里f(n)= n 2 n^2 n2, n ( l o g b a ) = n 2 n^(logba)=n^2 n(logba)=n2,f(n)等于n^(logba),所以为第二种情况,T(n)=θ( n 2 l g n n^2lgn n2lgn)
Ex3:T(n)=4T(n/2)+ n 3 n^3 n3
这里f(n)= n 3 n^3 n3, n ( l o g b a ) = n 2 n^(logba)=n^2 n(logba)=n2,f(n)大于n^(logba),所以为第三种情况,T(n)=θ( n 3 n^3 n3)
主定理(主方法)求解递归式相关推荐
- 用递归树方法求解递归式
用递归树方法求解递归式 [备注:需要修改] 一个递归算法的递归式:T(n)=3T(n/4)+cn2T\left(n\right)=3T\left(n/4\right)+cn^2T(n)=3T(n/4) ...
- 第四章 分治策略 4.4 用递归树方法求解递归式
4.4 用递归数方法求解递归式 一. 1. 在递归树中,每个结点表示一个单一子问题的代价,子问题对应某次递归函数调用.我们将树中每层中的代价求和,得到每层代价,然后将所有层的代价求和,得到所有层次 ...
- 【算法导论-主定理】用主方法求解递归式 学练结合版
问题:若某算法的计算时间表示为递推关系式:T(N)=2T(N/2)+NlogN 且 T(1)=1 则该算法的时间复杂度为( ). O(Nsqrt(N)) O(NlogN) O(N(logN)^2) O ...
- 算法导论 — 4.4 用递归树方法求解递归式
笔记 在应用代入法求解递归式时,需要事先做出一个好的猜测.然而,有时候做出好的猜测是很困难的,此时可以考虑采用递归树方法.在递归树中,每个结点表示一个单一子问题的代价.创建递归树之后,对树的每层的各子 ...
- 分治算法中的数学——求解递归式(代入法)
前言 在运用分治法将原问题分解成多个子问题后,通常可以得到一个关于时间复杂度的递归式,如T(n)=T(n/2)+O(1),如何求解递归式并得出该算法的时间复杂度O(f(n))就是我们要解决的问题.一般 ...
- 4.3—代入法求解递归式
对于代入法求解递归式,有以下自己的感触: 1.中间的证明过程用到了数学归纳法的思想: (1)首先证明初始条件是不是满足的,例如T(n)=O(nlgn),首先得验证当n=1的时候是不是满足条件,这里还牵 ...
- 算法分析之-主方法分析递归式
主方法 在算法分析中,我们主要使用代入法,递归树法,和主方法来分析递归式 而主方法为如下形式的递归式提供了一套"菜谱"式解法: T(n)=aT(nb)+f(n)T(n)=aT(\f ...
- 替换法(代入法)求解递归式
一.原理 替换法(或者叫代入法)就是我们直接对T(n)进行猜测,然后带入原递归式中进行验证.也就是猜测一个界,然后使用数学归纳法来证明这个界是对的. 步骤{\color{Red}步骤}步骤 : (1) ...
- 第四章 4.3 用代入法求解递归式
4.3-1 证明:T(n)=T(n-1)+n的解为O(n2n^2). c(n−1)2+n≤n2cn2−2cn+c+n≤n2cn2−(2c−1)n+1≤n2 c(n-1)^2+n\le n^2 \\cn ...
最新文章
- 一些能说到点子上的课程
- 市场营销学python有用吗_1、熟悉Python编辑、开发和运行环境。
- 智能合约的核心思想、语法重点、编程模式、示例、规范及架构
- MySQL 查询统计 日期查询
- Python应用实战案例-Python协程管理精讲万字长文(建议收藏)
- PHP实现一个ip(如:127.0.0.1)和多个域名(虚拟主机)的绑定
- AGC002E Candy Piles
- session多服务器共享的方案梳理
- android 判断 飞行模式,如何在Android上检测飞行模式?
- UDP对应的应用层协议之DHCP协议
- 图像处理/255.0 和/127.5 -1
- MySQL索引原理、失效情况
- 【Git】Git提交代码到GitHub的基本操作流程
- 一维FDTD等离子体的Matlab,修正过的一维FDTD等离子体MATLAB代码(公式修正)
- NOI.AC NOIP2018 全国热身赛 第四场
- matlab:Matlab基础教程 第三章 数组和向量
- 微信小程序文字语音转换/中英文自动翻译
- Qt自定义控件的实践——电池电量控件
- 迪士尼的漫威宇宙第四阶段计划出炉
- [读书笔记]自控力内容整理
热门文章
- 网站独立访客数UV的统计--海量数据去重
- C++中char *和char []的区别
- 跨境电商培训机构靠谱吗?跨境电商在我国遍地开花
- 载体坐标系-惯性坐标系-世界坐标系
- 绝对值不等式的常见形式及解法
- 电路学习1——磁珠的工作原理、磁珠的分类、磁珠的模型、磁珠的参数、磁珠与电感的区别、磁珠的应用、磁珠的误区
- css不可修改,css怎么设置text不可编辑
- .net core release 发布
- python编写存储过程_存储过程 - msjaxuexi - 博客园
- echo “新密码“ | passwd --stdin 用户名