英文原版不上了 直接中文

定义

假设有递推关系式T(n)=aT(n/b)+f(n)

其中n为问题规模

a为递推的子问题数量

n/b为每个子问题的规模(假设每个子问题的规模基本一样)

f(n)为递推以外进行的计算工作,无需参加递归

定理

a≥1,b>1为常数,f(n)为函数,T(n)为非负整数。则有以下结果(分类讨论):

(1)若f(n)=O(nlogba-ε)存在ε>0,就是当nlogba的阶高于f(n)时,可以存在ε使得nlogba-εf(n)的阶相同。此时取T(n)=θ(nlogba)

(2)若f(n)=Θ(nlogba) 注意这时nlogba的阶和f(n)的阶相同,不需要ε。此时取T(n)=Θ(nlogbalogn)

(3)若f(n)=Ω(nlogba+ε)首先得存在ε>0,就是当nlogba的阶低于f(n)时,可以存在ε使得nlogba+εf(n)的阶相同,即有足够大的n,而当af(n/b)<=cf(n), c<1此时取T(n)=Θ(f(n))

定义二

递推式子可以为T(n)=aT(n/b)+cnk 其中 cnk 表示原问题分解成子问题和将子问题的解合并成原问题的解的时间,对其分析可得到

\[T(n) = \begin{cases}
O(n^{log_ba}) & a > b^k \\
O(n^k·log_bn) & a = b^k \\
O(n^k) & a < b^k
\end{cases}\]

示例

T(n) = 9T(n/3)+n

此时 a = 9, b = 3, k = 1, f(n) = n, 满足a > bk 所以套用定理条件1 T(n) = θ(nlogba) = O(n²)

T(n) = 2T(n/2)+2n

此时 a = 2, b = 2, k = 1, f(n) = 2n, 满足a = bk,所以套用定理条件2 T(n) = O(nk·logbn) = O(nlog2n)

T(n) = 2T(n/4)+n²

此时 a = 2, b = 4, k = 2, f(n) = n², 满足 a < bk, 所以套用定理条件3 T(n) = O(n^k) = O(n²)

T(n) = 2T(n½)+logn

a = 2, b = 1, f(n) = logn ... 不考 暂且放置..

算法设计与分析 - 主定理Master theorem (分治法递推时间复杂度)的更多相关文章

  1. 对主定理(Master Theorem)的理解

    前言 虽说在学OI的时候学到了非常多的有递归结构的算法或方法,也很清楚他们的复杂度,但更多时候只是能够大概脑补这些方法为什么是这个复杂度,而从未从定理的角度去严格证明他们.因此借着这个机会把主定理整个 ...

  2. 【技术文档】《算法设计与分析导论》R.C.T.Lee等&#183;第7章 动态规划

    由于种种原因(看这一章间隔的时间太长,弄不清动态规划.分治.递归是什么关系),导致这章内容看了三遍才基本看懂动态规划是什么.动态规划适合解决可分阶段的组合优化问题,但它又不同于贪心算法,动态规划所解决 ...

  3. 算法设计与分析 - AC 题目 - 第 5 弹(重复第 2 弹)

    PTA-算法设计与分析-AC原题 - 最大子列和问题 (20分) 给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+, ..., Nj },其中 ≤i ...

  4. 算法设计与分析 - AC 题目 - 第 2 弹

    PTA-算法设计与分析-AC原题7-1 最大子列和问题 (20分)给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1 ...

  5. 算法设计与分析-Week12

    题目描述 You are given coins of different denominations and a total amount of money amount. Write a func ...

  6. 算法设计与分析 - 李春葆 - 第二版 - html v2

    1 .1 第 1 章─概论   1.1.1 练习题   1 . 下列关于算法的说法中正确的有( ).   Ⅰ Ⅱ Ⅲ Ⅳ .求解某一类问题的算法是唯一的   .算法必须在有限步操作之后停止   .算法 ...

  7. 算法设计与分析(李春保)练习题答案v1

    1.1第1 章─概论 1.1.1练习题 1.下列关于算法的说法中正确的有(). Ⅰ.求解某一类问题的算法是唯一的 Ⅱ.算法必须在有限步操作之后停止 Ⅲ.算法的每一步操作必须是明确的,不能有歧义或含义模 ...

  8. 算法设计与分析 - 李春葆 - 第二版 - pdf-&gt;word v3

    1.1 第1章─概论 练习题 . 下列关于算法的说法中正确的有( ). Ⅰ.求解某一类问题的算法是唯一的 Ⅱ.算法必须在有限步操作之后停止 Ⅲ.算法的每一步操作必须是明确的,不能有歧义或含义模糊 Ⅳ. ...

  9. 算法设计与分析 - 李春葆 - 第二版 - pdf-&gt;word v1

    章─概论 练习题 . 下列关于算法的说法中正确的有( ).Ⅰ.求解某一类问题的算法是唯一的 Ⅱ.算法必须在有限步操作之后停止 Ⅲ.算法的每一步操作必须是明确的,不能有歧义或含义模糊Ⅳ.算法执行后一定产 ...

  10. 南大算法设计与分析课程复习笔记(1) L1 - Model of computation

    一.计算模型 1.1 定义: 我们在思考和处理算法的时候是机器无关.实现语言无关的.所有的算法运行在一种“抽象的机器”之上,这就是计算模型. 1.2 种类 图灵机是最有名的计算模型,本课使用更简单更合 ...

随机推荐

  1. 包介绍 - UriTemplates (用于处理格式化Uri模板)

    UriTemplates 用于处理格式化Uri模板 PM> Install-Package Tavis.UriTemplates 设置Uri Path Segment [Fact] public ...

  2. toggle函数

    $(function() { $('.love').toggle(function() { $(this).attr("src", "images/loved.png&q ...

  3. SQL中对XML的处理

    DECLARE  @PreSOMasterXML XMLDECLARE   @SDA VARCHAR(100)SET @PreSOMasterXML=N'<ProcessTaskRequest& ...

  4. HTML5离线缓存Manifest

    web app不比PC,有性能和流量方面的考虑,离线应用越来越重要,虽然浏览器有缓存机制,但是时常不靠谱,更何况普通情况下html文件是没法缓存的,断网之后一切over. 什么是manifest? 简 ...

  5. 【BZOJ】1027: [JSOI2007]合金(凸包+floyd)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1027 题意:$n$种材料,$m$种需求.每种材料有三个属性,给出三个属性的含量(和为1),问能否通过 ...

  6. SWFUpload接受服务器Action返回的参数

    首先我们要了解这个函数 function uploadSuccess(file, serverData) { try { var progress = new FileProgress(file, t ...

  7. 17 Great Machine Learning Libraries

    17 Great Machine Learning Libraries 08 October 2013 After wonderful feedback on my previous post on ...

  8. ssh框架的小实例(用户登录)

    刚学SSH框架写一个小实例,以便以后查看: 本案例简单的实现一个用户登录: 数据库方面就不写了,自己领悟吧!哈哈(根据user.hbm.xml文件就知道了) 我们一般可以创建下面几个包,什么意思呢,自 ...

  9. [转帖]IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段/数字-如192.168.0.1/24是什么意思?

    IP地址.子网掩码.网络号.主机号.网络地址.主机地址以及ip段/数字-如192.168.0.1/24是什么意思? 2016年03月26日 23:38:50 JeanCheng 阅读数:105674  ...

  10. react 点击空白处隐藏弹出层

    点击空白处隐藏弹出层的原理是:在 document 上绑定事件来隐藏弹出层,这样点击任何元素的时候都会冒泡到 document 上,都会执行隐藏弹出层的功能.然后我们在不需要隐藏弹出层的元素上阻止冒泡 ...