
算法设计与分析
二硫碘化钾kk
这个作者很懒,什么都没留下…
展开
-
【算法设计与分析】回溯算法
一、回溯算法回溯法是一种组织搜索的一般技术,有“通用的解题法”之称,用它可以系统的搜索一个问题的所有解或任一解。有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。可以系统地搜索一个问题的所有解或任意解,既有系统性又有跳跃性。回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。这种以深度优先的方式系统地搜索问题的解的方法称为回溯法。二、问题的解空间应用回溯法求解时,需要明确定义问题的解空间。问题的解空...原创 2020-05-09 10:31:42 · 1587 阅读 · 0 评论 -
【算法设计与分析】贪心算法
一、贪心算法在求最优解问题的过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法。从贪心算法的定义可以看出,贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,而由问题自身的特性决定了该题运用贪心算法可以得到最优解。如果一个问题可以同时用几种方法解决,贪心算法应该是最好的选择之一。二、贪心算法的理论基础贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,希望得到结原创 2020-05-09 10:18:39 · 593 阅读 · 0 评论 -
【算法设计与分析】动态规划
一、动态规划的基本思想 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我.原创 2020-05-09 10:03:41 · 458 阅读 · 0 评论 -
【算法设计与分析】递归与分治策略
递归算法程序直接或间接调用自身的编程技巧称为递归算法(Recursion)。一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满...原创 2020-05-06 08:41:53 · 377 阅读 · 0 评论 -
【算法设计与分析】递推算法
递推算法一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。递推算法的首要问题是得到相邻的数据项间的关系(即递推关系)。递推算法避开了求通项公式的麻烦,把一个复杂的问题的求解,分解成了连续的若干步简单运算。一般说来...原创 2020-05-06 08:29:50 · 1416 阅读 · 0 评论 -
【算法设计与分析】绪论
为什么要学算法一、算法——程序的灵魂二、提高分析问题的能力算法及其重要特性 算法(Algorithm):对特定问题求解步骤的一种描述,是指令的有限序列。⑴ 输入:一个算法有零个或多个输入。⑵ 输出:一个算法有一个或多个输出。⑶ 有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。⑷ 确定性:算法中的每一条指令必须有确切的含义,对于相同的输入只能...原创 2020-05-06 08:20:52 · 474 阅读 · 0 评论