下载此文档

第5章 减治法.ppt


文档分类:医学/心理学 | 页数:约81页 举报非法文档有奖
1/81
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/81 下载此文档
文档列表 文档介绍
第5章减治法 Reduce and Conquer Method
算法设计与分析—本科生课程
Design and Analysis of Algorithm
海南大学信息科学技术学院
College of Information Science and Technology, Hainan University
2018/6/24
Reduce and Conquer Method
2
教学重点
减治法的设计思想,各种经典问题的减治思想
教学难点
二叉查找树,堆排序
教学内容及目标
知识点
教学要求
了解
理解
掌握
熟练掌握
减治法的设计思想

折半查找

二叉查找树

选择问题

插入排序

堆排序

淘汰赛冠军问题

假币问题

学习目标
2018/6/24
Reduce and Conquer Method
3
第5章减治法
概述
查找问题中的减治法
排序问题中的减治法
组合问题中的减治法
阅读材料假币问题的复杂版本
2018/6/24
Reduce and Conquer Method
4
概述
分治法:把一个大问题划分为若干个子问题,分别求解各个子问题,然后将子问题的解合并得到原问题的解。
减治法:同样把一个大问题划分为若干个子问题,但无须分别求解这些子问题,只需求解其中的一个子问题,因而无需对子问题的解进行合并。退化了的分治法。
2018/6/24
Reduce and Conquer Method
5
减治法的设计思想
减治法将问题划分为若干子问题,并且规模为n的原问题的解与较小规模(通常是n/2)的子问题的解之间具有某种确定的关系:
(1)原问题的解只存在于其中一个较小规模的子问题中;
(2)原问题的解与其中一个较小规模的解之间有某种对应关系。
由于原问题的解与较小规模的子问题的解之间存在这种关系,所以,只需求解其中一个较小规模的子问题就可以得到原问题的解。
2018/6/24
Reduce and Conquer Method
6
子问题
的规模是n/2
子问题的解
原问题的解
原问题
的规模是n
子问题
的规模是n/2
减治法的设计思想
2018/6/24
Reduce and Conquer Method
7
例:计算an的值,应用减治技术得到如下计算方法:
应用分治法得到an的计算方法是:
O (log2n)
O (n log2n)
ï
î
ï
í
ì
>
´
>
=
=
-
且是奇数
且是偶数
1
)
(
1
)
(
1
2
2
)
1
(
2
2
n
a
a
n
a
n
a
a
n
n
n
减治法的设计思想
2018/6/24
Reduce and Conquer Method
8
所以,通常来说,应用减治法处理问题的效率是很高的,一般是O(log2n)数量级。
减治法只对一个子问题求解,并且不需要解的合并。应用减治法(例如减半法)得到的算法通常具有如下递推式:
减治法的设计思想
对比分治法:
2018/6/24
第5章减治法
Page 9
减治法的设计思想
一个简单的例子—两个序列的中位数
问题描述:一个长度为n(n≥1)的升序序列S,处在第n/2个位置的数称为序列S的中位数。两个序列的中位数是他们所有元素的升序序列的中位数。现有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列的中位数。
A={11, 13, 15, 17, 19}, B={2, 4, 10, 15, 20},则中位数为13
2018/6/24
第5章减治法
Page 10
减治法的设计思想
[想法] 分别求出两个序列的中位数,记为a和b;比较a和b,有下列三种情况:
① a = b:则a即为两个序列的中位数;
② a < b:则中位数只能出现在a和b之间,在序列A中舍弃a之前的元素得到序列A1,在序列B中舍弃b之后的元素得到序列B1;
③ a > b:则中位数只能出现在b和a之间,在序列A中舍弃a之后的元素得到序列A1,在序列B中舍弃b之前的元素得到序列B1;
在A1和B1中分别求出中位数,重复上述过程,直到两个序列中只有一个元素,则较小者即为所求。

第5章 减治法 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数81
  • 收藏数0 收藏
  • 顶次数0
  • 上传人s0012230
  • 文件大小3.66 MB
  • 时间2018-06-23