三、递归树分析法

1 问题

在这里插入图片描述

2 解决思路

使用递归树猜想一个上界,使用归纳法证明上界也是下界。

2.1 使用递归树(recursion tree)猜想结论(不严谨)

使用递归树两点:1⃣️逐行展开;2⃣️逐行相加;

逐行展开

本质上是分解问题,每个非叶子结点表示分解+合并问题所付出的代价,叶子结点表示解决边界问题所付出的代价。
在这里插入图片描述

逐层求和

这里要注意,除去非叶子结点,每一层的和呈现出等比数列性质,计算整个代价T(n)T(n)T(n)本质上就是分解(合并)问题付出的代价+解决递归边界付出的代价。

Case1:

分解问题的代价:
在这里插入图片描述
在这里插入图片描述
解决递归边界的代价:
Θ(nlogba)\Theta(n^{log_ba})Θ(nlogba)
取多项式最高次项,因此T(n)=O(nlogba)T(n) = O(n^{log_ba})T(n)=O(nlogba);

Case2:

分解问题的代价:
在这里插入图片描述
解决递归边界的代价:
Θ(nlogba)\Theta(n^{log_ba})Θ(nlogba)
取多项式最高次项,因此T(n)=O(nlogbalogbn)T(n) = O(n^{log_ba}log_bn)T(n)=O(nlogbalogbn);

Case3:

分解问题的代价:
根据假设容易得到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面的不等号是渐进成立的,所以为了保证对每一个nnn都成立,对于前有限的nnn,要加上每一个都要加上一个足够大的常数,因此有下面的式子。
在这里插入图片描述
解决递归边界的代价:
Θ(nlogba)\Theta(n^{log_ba})Θ(nlogba)
取多项式最高次项,因此T(n)=O(f(n))T(n) = O(f(n))T(n)=O(f(n));

2.2 使用归纳法证明结论(严谨)

上面的递归树分析只是大概得到了一个上界,下面使用数学归纳发证明上届也是下界。

Case1:

在这里插入图片描述

Case2:

在这里插入图片描述

Case3:

在这里插入图片描述

3 结论

  1. 先使用非严谨的形式分析、猜想,然后用数学归纳法证明,这个思路贯穿整个导论一书;
  2. 主定理由递归树推出,很多情形不符合主定理的假设,但是递归树+归纳法仍然可以解决,所以整个过程最有价值的是这套分析、证明方法,而非主定理。
  3. 上面在使用归纳法证明时,渐进符号的威力惊艳了我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420769.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux文件查看/编辑方法介绍

转载:https://www.centos.bz/2011/10/linux-file-view-edit/ cat 命令介绍 cat 命令的原含义为连接(concatenate), 用于连接多个文件内容并输出到标准输出流中(标准输出流默认为屏幕)。实际运用过程中,我们常使用它来显示文件内容…

html5input表单标签新属性

初探h5一,h5 新增表单类型二,新增表单属性三,code demo一,h5 新增表单类型 •email 邮箱地址•url 网络地址•number 数字框•range 滑块•Date pickers (date, month, week, time, datetime, datetime-local) 日期时间框•search…

关于java的JIT知识

1.JIT的工作原理图 工作原理 当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器。JIT编译器将字节码编译成本机机器代码。 通常javac将程序源码编译,转换成java字节码,JVM通过解释…

Storage 使用

关于web项目数据存储1. 存储种类2. localStorage/sessionStorage2.1 概念2.2 api的使用3. 学生curd测试localStorage针对客户端存储讲 ——storage1. 存储种类 1. 分为服务器端和客户端的存储 2. 服务器端:1. 内存存储(临时)application session request pageConte…

信息抽取--新词提取

(纯属为了记录自己学习的点滴过程,引用资料都附在参考列表) 1 基本概念 什么是新词(是什么) 新词是一个相对的概念,每个人的标准都不一样,所以我们这里定义: 词典之外的词语(OOV)称作新词。 …

spring 基于xml方式配置aop

目录什么是aop模拟aop配置什么是aop 什么是aop 作用 在程序运行期间,在不修改源码的情况下对方法进行功能增强 优势 减少重复代码 提高开发效率 并且便于开发2.aop关键概念 模拟aop 目标接口 package com.lovely.proxy.aop;public interface TargetInterface …

word2vec相关资料

blogs: http://www.douban.com/note/323504583/ and http://www.zhihu.com/question/21661274 references: http://arxiv.org/pdf/1310.4546v1.pdf and http://www.fit.vutbr.cz/research/groups/speech/servite/2010/rnnlm_mikolov.pdf转载于:https://www.cnblogs…

信息抽取--关键词提取

(纯属为了记录自己学习的点滴过程,引用资料都附在参考列表) 1 基本概念 什么是关键词(是什么) 大略的讲就是文章中重要的单词,而不限于词语的新鲜程度。 什么样的单词是重要的单词,恐怕这是个…

h5离线缓存

html5离线缓存1. 简介1.1 什么是离线缓存1.2 优点1.3 针对对象2. 实现方式2.1 使用3. window.applicationCache对象相关api3.1 属性3.2 事件3.3 方法1. 简介 1.1 什么是离线缓存 HTML5中引入了应用程序缓存,意味着Web应用可以进行数据缓存,并可以在没有…

3389爆破DUBrute_2.1

3389专业爆破 DUBrute_2.1.zip http://pan.baidu.com/s/1pJE0t5L转载于:https://www.cnblogs.com/lieyan/p/3859696.html

信息抽取--短语提取

(纯属为了记录自己学习的点滴过程,引用资料都附在参考列表) 1 基本概念 短语提取 在信息抽取领域,另一项重要的任务就是提取中文短语,也即固定多字词表达串的识别。短语提取经常用于搜索引擎的自动推荐,文…

ACM1598并查集方法

find the most comfortable road Problem DescriptionXX星有许多城市,城市之间通过一种奇怪的高速公路SARS(Super Air Roam Structure---超级空中漫游结构)进行交流,每条SARS都对行驶在上面的Flycar限制了固定的Speed,同时XX星人对…

h5 server send event(sse)

1. sse概述 概念: H5支持使用JS脚本不间断的访问服务器(推送)轮询: 页面使用js的定时器,定时发送请求查询最新数据 使用js将最新数据加载至页面 每发送一次数据,需要建立新的连接 时间间隔由客户端决定 优点:不需要刷新页面、实…

信息抽取--关键句提取

(纯属为了记录自己学习的点滴过程,引用资料都附在参考列表) 1 基本概念 关键句提取 在一些场合,关键词或关键短语依然显得碎片化,不足以表达完整的主题。这时通常提取中心句子作为文章的简短摘要。 2 问题 关键句提…

Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null

最近发现系统中出现了很多 IOException: Connection reset by peer 与 ClosedChannelException: null 深入看了看代码, 做了些测试, 发现 Connection reset 会在客户端不知道 channel 被关闭的情况下, 触发了 eventloop 的 unsafe.read() 操作抛出 而 ClosedChannelException 一…