
算法
文章平均质量分 94
拾亿-唯一
这个作者很懒,什么都没留下…
展开
-
算法设计与分析-----动态规划
算法设计与分析-----动态规划(c语言)一、动态规划1、定义2、动态规划问题的解法3、动态规划求解的基本步骤4、动态规划与其他方法的比较5、求解整数拆分问题6、求解最大连续子序列和问题二、动态规划算法实验1、实验一 fibonacci数列2、实验二 拆分方案的个数的求解。一、动态规划1、定义动态规划是一种解决多阶段决策问题的优化方法,把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。2、动态规划问题的解法(1)逆序解法(2)顺序解法3、动态规划求解的基本步骤采用动态规原创 2021-09-12 13:39:39 · 1401 阅读 · 0 评论 -
算法设计与分析-----贪心法
算法设计与分析-----贪心法(c )一、贪心法1、定义 贪心法的基本思路是在对问题求解时总是做出在当前看来是最好的选择,也就是说贪心法不从整体最优上加以考虑,所做出的仅是在某种意义上的局部最优解。 人们通常希望找到整体最优解,所以采用贪心法需要证明设计的算法确实是整体最优解或求解了它要解决的问题。2、贪心法具有的性质1、贪心选择性质 所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。也就是说,贪心法仅在当前状态下原创 2021-09-11 22:28:18 · 2358 阅读 · 0 评论 -
算法设计与分析------回溯法
算法设计与分析------回溯法©一、 回溯法1、定义 在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点(开始结点)出发搜索解空间树。 回溯法搜索解空间时,通常采用两种策略避免无效搜索,提高回溯的搜索效率:用约束函数在扩展结点处剪除不满足约束的子树;用限界函数剪去得不到问题解或最优解的子树。这两类函数统称为剪枝函数。总结: 回溯法 = 深度优先搜索 + 剪枝2、回溯法解题的一般步骤①确定问题的解空间树,问题的解空间树应至少包含问题的一个原创 2021-09-11 21:10:36 · 4506 阅读 · 1 评论 -
算法设计与分析------蛮力法
算法设计与分析------蛮力法(c++)一、蛮力法(穷举法 枚举法)1、定义 蛮力法是一种简单直接地解决问题的方法,通常直接基于问题的描述和所涉及的概念定义,找出所有可能的解。然后选择其中的一种或多种解,若该解不可行则试探下一种可能的解。2、蛮力法使用情况索所有的解空间:问题的解存在于规模不大的解空间中。索所有的路径:这类问题中不同的路径对应不同的解。直接计算:按照基于问题的描述和所涉及的概念定义,直接进行计算。往往是一些简单的题,不需要算法技巧的。拟和仿真:按照原创 2021-09-10 23:04:33 · 9432 阅读 · 0 评论 -
算法设计与分析----分治法
算法设计与分析----分治法(C++)一、分治法1、定义 对于一个规模为n的问题:若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。 这种算法设计策略叫做分治法。2、特征 (1)该问题的规模缩小到一定的程度就可以容易地解决。(2)该问题可以分解为若干个规模较小的相同问题。(3)利用该问题分解出的子问题的解可以合并为该问题原创 2021-09-10 21:00:32 · 2816 阅读 · 0 评论 -
算法设计与分析----递归算法
算法设计与分析----递归算法(C++)一、递归算法1、定义 在定义一个过程或函数时出现调用本过程或本函数的成分,称之为递归。若调用自身,称之为直接递归。若过程或函数p调用过程或函数q,而q又调用p,称之为间接递归。 任何间接递归都可以等价地转换为直接递归。如果一个递归过程或递归函数中递归调用语句是最后一条执行语句,则称这种递归调用为尾递归。2、用递归解决的问题应该满足以下三个条件:需要解决的问题可以转化为一个或多个子问题来求解,而这些子问题的求解方法与原问题完全相同原创 2021-09-10 20:59:21 · 2037 阅读 · 0 评论