- 25
- 0
- 约4.08万字
- 约 18页
- 2017-06-22 发布于湖北
- 举报
第三章 分治法
教学目标
掌握分治法的基本思想和求解步骤
理解分治法的精髓,即如何分?如何治?才能使得算法效率更高
通过实例学习,掌握运用分治法来解决实际问题的方法
凡治众如治寡,分数是也。—— 《孙子兵法》
任何一个可以用计算机求解的问题所需的计算时间都与其规模有关:问题的规模越小,
越容易直接求解,所需的计算时间也就越少。例如,对于 n 个元素的排序问题,当n=1 时,
不需任何计算;n=2 时,只要做一次比较即可排好序;n=3 时只要作 3 次比较即可……,当
n 较大时,问题就不那么容易处理了。可见,要想直接解决一个规模较大的问题,有时是很
困难的。那么,为了更好地解决这些规模较大的问题,分治法应运而生了。
在计算机科学中,分治法是一种很重要的算法。它采取各个击破的技巧来解决一个
规模较大的问题,该技巧是很多高效算法的基础,如排序算法(快速排序,归并排序) ,
傅立叶变换(快速傅立叶变换)等。
3.1 概述
3.1.1 分治法的基本思想
分治法,字面上的解释是 “分而治之”,就是把一个复杂的问题分成两个或更多的
相同子问题,再把子问题分成更小的子问题……,直到最后各个子问题可以简单地直接
求解,对各个子问题的解进行合并即得原问题的解。
可见,分治法的基本思想是将一个难以直接解决的大问题,分解成一些规模较小的相同
问题,以便各个击破,分而治之。
那么,何时能、何时应该采用分治法来解决问题呢?即分治法所能解决的问题应该具备
哪些特征?从许多可以用分治法求解的问题中,我们看到这些问题一般具有以下几个特征:
(1)问题的规模缩小到一定程度就可以容易地解决。
(2 )问题可以分解为若干个规模较小的相同子问题。
(3 )问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。
(4 )问题分解出的子问题的解可以合并为原问题的解;
上述的第一条特征是绝大多数问题都可以满足的,因为问题的计算复杂性一般是随着问
题规模的增大而增加;第二条特征是应用分治法的前提,它也是大多数问题可以满足的,此
特征反映了递归思想的应用;第三条特征涉及到分治法的效率,如果各个子问题是不独立的,
则分治法要做许多不必要的工作——重复求解公共的子问题;第四条特征是关键,能否利用
分治法完全取决于问题是否具有第四条特征。
Print to PDF without this message by purchasing novaPDF (/)
58算法设计与分析
3.1.2 分治法的求解步骤
通常,分治法的求解过程都要遵循两大步骤:分解和治理。
步骤 1:分解。
既然是分治法,当然要对待求解问题进行分解,即将问题分解为若干个规模较小、相互
独立、与原问题形式相同的子问题;
那么,究竟该如何合理地对问题进行分解呢?应把原问题分解为多少个子问题才较适
宜?每个子问题是否规模相同才为适当?这些问题很难给予肯定的回答。人们从大量的实践
中发现,在用分治法设计算法时,最好使子问题的规模大致相同,即将一个问题分为大小相
等的 k 个子问题 (通常 k=2 ),这种处理方法行之有效。这种使子问题规模大致相等的做法
您可能关注的文档
最近下载
- 2026年高考全国II卷文科综合真题试卷(新课标卷)(+答案).docx VIP
- 安路科技(688107)补国产短板,突高端应用,拓新应用与技术大市场-240717-东北证券-38页.pdf VIP
- [搞笑小品剧本]上当了小品剧本.docx VIP
- 全国初中数学联合竞赛真题及答案(初二组)2015-年.pdf VIP
- 数据中心800V直流供电技术白皮书2.0.pdf
- 上海大学2022-2023学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 上海大学2022-2023学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 中国教育行业人才流动与薪酬水平_2025年12月.docx
- 2024全国初中数学联赛初二卷 .pdf VIP
- AIAG-VDA-SPC手册-Yellow-Volume2026年2月第一版 中文.pdf VIP
原创力文档

文档评论(0)