188旅游网站管理系统源码,集团形象设计公司,夫妻做网站,企业建站用什么好文章目录 前言经典算法思想总结一、贪心算法二、动态规划三、回溯算法四、分治算法 前言
这篇简单理解一些常见的算法。如果面试的时候问到相关的算法#xff0c;能够应付一二。 经典算法思想总结
一、贪心算法
思想#xff1a;贪心算法是一种在每一步选择中都采取在当前状… 文章目录 前言经典算法思想总结一、贪心算法二、动态规划三、回溯算法四、分治算法 前言
这篇简单理解一些常见的算法。如果面试的时候问到相关的算法能够应付一二。 经典算法思想总结
一、贪心算法
思想贪心算法是一种在每一步选择中都采取在当前状态下最好或最优即最有利的选择从而希望导致结果是全局最好或最优的算法策略。
步骤
定义问题确定问题是否适合使用贪心算法即问题具有贪心选择性质。选择标准确定贪心选择的标准即在每一步选择中如何判断“最好”或“最优”。执行贪心策略按照贪心选择标准逐步做出选择直到问题解决。评估结果分析结果确定是否满足问题的要求以及是否是最优解。
贪心算法的优点是实现简单执行速度快对于某些问题能够快速得到一个足够好的解决方案。但它的缺点是可能无法保证得到全局最优解只适用于特定问题。 二、动态规划
思想动态规划中每一个状态一定是由上一个状态推导出来的这一点就区分于贪心贪心没有状态推导而是从局部直接选最优的。 步骤
确定 dp 数组dp table以及下标的含义确定递推公式dp 数组如何初始化确定遍历顺序举例推导 dp 数组 三、回溯算法
算法思想回溯算法实际上一个类似枚举的搜索尝试过程主要是在搜索尝试过程中寻找问题的解当发现已不满足求解条件时就“回溯”返回尝试别的路径。其本质就是穷举。
步骤
针对所给问题定义问题的解空间它至少包含问题的一个最优解。确定易于搜索的解空间结构,使得能用回溯法方便地搜索整个解空间 。以深度优先的方式搜索解空间并且在搜索过程中用剪枝函数避免无效搜索。leetcode 四、分治算法
算法思想将一个规模为 N 的问题分解为 K 个规模较小的子问题这些子问题相互独立且与原问题性质相同。求出子问题的解就可得到原问题的解。
步骤
将原问题分解为若干个规模较小相互独立与原问题形式相同的子问题若子问题规模较小而容易被解决则直接解否则递归地解各个子问题将各个子问题的解合并为原问题的解