分治法概念:
分治法:将原问题分成n个规模较小而结构与原问题相似的子问题;递归地解这些子问题,然后合并其结果就得到原问题的解。
分治模式在每一层递归上都有三个步骤:
第一步:将原问题分解成一系列子问题;(分解)
第二部:递归地解各子问题。若子问题足够小,则直接求解;(解决)
第三部:将子问题的结果合并成原问题的解;(合并)
分治法算法分析:
当一个算法中含有对自身的递归调用时,其运行时间可用一个递归方程来表述,分治算法中的递归式是基于基本模式中的三个步骤的。设T(n)为在规模n下问题的运行时间。如果n足够小,例如有n<c(c为常量),则得到它的直径解的时间为常量,写作theta(1)。假设我们把原问题分成a个子问题,每一个的大小是原问题的1/b。若分解该问题和合并解的时间各为D(n),则得递归式:
theta(1) 若n<=c
T(n)={
aT(n/b)+D(n)+C(n) 否则
合并排序算法的分析:
合并算法是分治法的一种,故基本步骤如下:
分解:这一步仅仅是计算出子数组中间位置,因而D(n)=theta(1)
解决:递归地解两个规模为n/2的子问题,时间为2T(n/2)
合并:已知merge过程在一个含有n个元素的子数组上的运行时间为theta(n)。则C(n)=theta(n).
函数D(n)和C(n)的阶为theta(n)和theta(1),他们的和是n的线性函数,即阶为theta(n)。将它与“解决”步骤所得的项2T(n/2),即得T(n)的递归表示:
theta(1) 若n=1
T(n)={
2T(n/2)+theta(n) 若n>1
递归式解法:
本来打算详细讲解的,但是由于时间有限,直接在网上找到一份ppt上传吧,基本上能讲清楚,而且PPT格式比网页看起来更友好些,各位看官见谅
分享到:
相关推荐
本资源是对《算法导论》的学习笔记,涵盖了算法的基础知识、算法分析、函数的增长、递归式等方面的内容。 一、算法基础知识 算法是指将输入转换为输出的一系列计算步骤,目的是为了有效利用计算机的有限资源。算法...
分治法是一种强大的算法设计策略,它将一个大问题分解为若干个规模较小、相互独立且与原问题结构相同的子问题,然后递归地解决这些子问题,最后将子问题的解合并,得到原问题的解。这种方法通常在问题规模较小时直接...
《MIT算法导论公开课之课程笔记 分治法》是一份深度探讨分治法的珍贵学习资料,源自世界知名学府麻省理工学院(MIT)的算法导论课程。该课程笔记详细介绍了分治法这一核心的算法设计策略,旨在帮助学习者深入理解并...
作为“算法导论系列读书笔记之三”,本文将主要探讨第三章的内容,这一章通常聚焦于排序与选择算法,这些是数据处理的基础,对理解和优化程序性能至关重要。 在第一章和第二章中,我们可能已经接触到了基本的数据...
在C语言中,分治法是一种强大的算法设计策略,它将复杂的问题分解为较小的子问题,然后分别解决这些子问题,最后将结果合并得到原问题的解。递归是实现分治法的一种常见手段,它允许函数调用自身来处理更小规模的...
这份"算法导论授课教案学习笔记"是针对该书的深入学习资源,包括了教学教案、课后作业及解答,对于正在学习算法的学生来说,无疑是一份极其宝贵的参考资料。 教程部分可能涵盖以下知识点: 1. **算法基础**:介绍...
《MIT算法导论公开课之课程笔记 2.渐进符号、递归及解法》 在计算机科学领域,算法是解决问题的关键。MIT的这门算法导论公开课深入浅出地探讨了算法的设计与分析,本笔记主要聚焦于渐进符号、递归以及问题的解决...
作为“算法导论系列读书笔记之二”,本文将主要探讨第二章的内容,这一章通常涵盖基础的数据结构和算法,为后续章节的学习打下坚实的基础。 在算法分析中,"循环不变式"是一个至关重要的概念。它是指在循环开始前、...
《算法导论》是计算机科学领域的一本经典之作,它深入浅出地介绍了算法的设计、分析和实现。这本书的第二到第八章涵盖了诸多基础且重要的算法知识,是学习算法的基石。以下是对这些章节主要内容的详细解读: 第二章...
该答案集全面覆盖了书中涉及的各种算法,包括排序、搜索、图算法、动态规划、贪心算法、分治策略、回溯法、分支限界法等。每个算法的解答都详细阐述了解题思路,提供了伪代码和可能的实现,帮助读者理解算法背后的...
### 《算法导论》学习笔记关键知识点梳理 #### 第一部分:基础知识 ##### 第1章:算法在计算中的作用 1. **算法定义**:算法是一系列明确且有限的指令集合,旨在解决特定问题或执行特定任务。它可以视为将有效...
- **第4章:分治策略** — 通过最大子数组问题、斯特拉森矩阵乘法算法等实例展示了分治策略的应用,并讨论了递归式解法的不同方法,包括代换法、递归树法以及主定理。 - **第5章:概率分析和随机化算法** — 探讨...
2、修订了递归式(现在称为“分治策略”)那一章的内容,更广泛地覆盖分治法。 3、移除两章很少讲授的内容:二项堆和排序网络。 4、修订了动态规划和贪心算法相关内容。 5、流网络相关材料现在基于边上的全部流。 6...
前者很显然是《算法导论》第三版的电子版,读者可以通过这份PDF文档深入学习书中涵盖的各种算法,如排序、搜索、图算法、动态规划、贪心算法、分治策略等。这些算法是计算机科学的基础,对于提升编程能力和解决复杂...
比如,分治法中的主定理(Master Theorem),这是解决递归式复杂度的一个重要工具。书中还提到了概率分析和随机化算法,例如通过雇佣问题来说明随机算法的应用,以及如何使用指示随机变量进行概率分析。 在第二部分...
《算法导论》是计算机科学领域的一本经典著作,它为读者提供了全面而深入的算法理论与实践知识。中文第三版的出版,使得更多中国读者能够无障碍地学习这本权威教材。英文版第四版虽然在描述中提及,但主要讨论的重点...
本书涵盖了排序和搜索算法、图算法、动态规划、贪心算法、分治策略、回溯与分支限界法以及随机化算法等多种主题。 答案部分通常包括对每个问题的详尽解答,可能包括伪代码、流程图、数学推导以及复杂度分析。通过...