算法
文章平均质量分 78
shuimuya324
这个作者很懒,什么都没留下…
展开
-
常用算法大全-分而治之算法
本章给出了用来分析分而治之算法复杂性的数学方法,并通过推导最小最大问题和排序问题的复杂性下限来证明分而治之算法对于求解这两种问题是最优的(因为算法的复杂性与下限一致)。 2.1 算法思想 分而治之方法与软件设计的模块化方法非常相似。为了解决一个大的问题,可以: 1) 把它分成两个或多个更小的问题; 2) 分别解决每个小问题; 3) 把各小问题的解答组合起来,即可得到原问题的解答。小...原创 2011-07-27 15:59:28 · 174 阅读 · 0 评论 -
常用算法大全-分枝定界
任何美好的事情都有结束的时候。现在我们学习的是本书的最后一章。幸运的是,本章用到的大部分概念在前面各章中已作了介绍。类似于回溯法,分枝定界法在搜索解空间时,也经常使用树形结构来组织解空间(常用的树结构是第1 6章所介绍的子集树和排列树)。然而与回溯法不同的是,回溯算法使用深度优先方法搜索树结构,而分枝定界一般用宽度优先或最小耗费方法来搜索这些树。本章与第1 6章所考察的应用完全相同...原创 2011-07-27 16:01:04 · 221 阅读 · 0 评论 -
常用算法大全-回溯算法
寻找问题的解的一种可靠的方法是首先列出所有候选解,然后依次检查每一个,在检查完所有或部分候选解后,即可找到所需要的解。理论上,当候选解数量有限并且通过检查所有或部分候选解能够得到所需解时,上述方法是可行的。不过,在实际应用中,很少使用这种方法,因为候选解的数量通常都非常大(比如指数级,甚至是大数阶乘),即便采用最快的计算机也只能解决规模很小的问题。对候选解进行系统检查的方法有多种,其中...原创 2011-07-27 16:02:11 · 172 阅读 · 0 评论 -
常用算法大全-贪婪算法
本章首先引入最优化的概念,然后介绍一种直观的问题求解方法:贪婪算法。最后,应用该算法给出货箱装船问题、背包问题、拓扑排序问题、二分覆盖问题、最短路径问题、最小代价生成树等问题的求解方案。 1.1 最优化问题 本章及后续章节中的许多例子都是最优化问题( optimization problem),每个最优化问题都包含一组限制条件( c o n s t r a i n t)和一...原创 2011-07-27 16:03:33 · 250 阅读 · 0 评论 -
常用算法大全-动态规划算法
3.1 算法思想 和贪婪算法一样,在动态规划中,可将一个问题的解决方案视为一系列决策的结果。不同的是,在贪婪算法中,每采用一次贪婪准则便做出一个不可撤回的决策,而在动态规划中,还要考察每个最优决策序列中是否包含一个最优子序列。 例3-1 [最短路经] 考察图1 2 - 2中的有向图。假设要寻找一条从源节点s= 1到目的节点d= 5的最短路径,即选择此路径所经过的各个节点。第一步可选择节...原创 2011-07-27 16:04:25 · 223 阅读 · 0 评论 -
动态规划求解最长公共子串中的问题
今天学习了动态规划的相关思想,随后找了一些经典的题目希望能加深一下印象。然而在求解“最长公共子串”的问题时却发现了一些问题。 一般来说,在求解这类问题的时候,大都依据以下原理: 定义lcs[i][j]为序列“a0,a1,…,ai-2”和“b0,b1,…,bj-1”的最长公共子序列的长度,计算lcs[i] [j]可递归地表述如下: (1)lcs[i][j...2011-07-28 18:49:02 · 212 阅读 · 0 评论