![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法考试复习
文章平均质量分 72
研一期末算法课复习
童年梦
这个作者很懒,什么都没留下…
展开
-
【算法复习】减治算法
减治算法写在前面的话本文是本学渣因为考试需要写的一篇总结,只总结了需要考察的考点,所以可能有的内容引申的不多,请见谅。一、 思想:减少问题规模与分治法不同,减治法只针对其部分子问题进行求解,同时也是采取划分后选择计算的思想利用了一个问题给定实例的解和同样问题较小实例的解之间的某种关系。一旦建立了这种关系,就可以从顶至下递归的来用该关系,也可以从底至上非递归的来运用该关系:减去一个常量减去一个常量因子减去的规模是可变的二、 生成组合对象2.1 Johnson-Trotter算法Joh原创 2021-04-16 14:40:02 · 1435 阅读 · 0 评论 -
【算法复习】分治算法
分治算法写在前面的话本文是本学渣因为考试需要写的一篇总结,只总结了需要考察的考点,所以可能有的内容引申的不多,请见谅。一、思想:分而治之分(Divide): 递归解决较小的问题,直到终止层或者可以解决的时候停下来治(Conquer): 递归求解,如果问题够小直接求解合并(Combine): 用子问题的解合并构建父问题二、归并排序:# 归一化def merge_sort(nums, begin, end): if begin < end: mid = (begin +原创 2021-04-16 14:39:04 · 139 阅读 · 1 评论 -
【算法复习】动态规划
动态规划写在前面的话本文是本学渣因为考试需要写的一篇总结,只总结了需要考察的考点,所以可能有的内容引申的不多,请见谅。一、思想动态规划与分治方法类似,都是通过组合子问题的解来来求解原问题的。分治方法将问题划分为互不相交的子问题,递归的求解子问题,再将它们的解组合起来,求出原问题的解。动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子子问题(子问题的求解是递归进行的,将其划分为更小的子子问题)。这种情况下使用分治算法会重复求解那些子子问题而浪费时间。二、解决步骤解决动态规划问题一般分为原创 2021-04-16 14:37:59 · 228 阅读 · 0 评论 -
【算法复习】 变治算法
变治算法写在前面的话本文是本学渣因为考试需要写的一篇总结,只总结了需要考察的考点,所以可能有的内容引申的不多,请见谅。一、思想变,将问题的实例变得更容易求解治,对变化后的实例进行求解主要分为如下三种类型:问题化简:将一个问题的实例变为另外一个问题的实例例如堆排序实例化简:将问题的实例变为更简单的实例例如通过预排序,将问题变为排序好的列表的问题改变表现:将同一个实例变成不同的表现例如AVL树,多路查找树二、实例化简——高斯消去法本节考试重点:高斯消去法的过程**思想:**用于原创 2021-04-16 14:34:37 · 749 阅读 · 1 评论 -
【算法复习】迭代改进
迭代改进写在前面的话本文是本学渣因为考试需要写的一篇总结,只总结了需要考察的考点,所以可能有的内容引申的不多,请见谅。一、思想从某个可行解出发,重复一些简单的步骤迭代改进它,逐渐将其优化为最优解表现为通过局部的小改变,生成另一个可行解,使问题的目标函数更加优化。当最终目标函数达到无法再优化,则得到最优解会遇到一些障碍:获得初始可行解有困难,例如用贪婪比较容易,但是也可能会和获得最优解一样困难判断是局部最优解还是全局最优解困难。二、线性规划问题在一系列线性约束下,求一个包含若干变量的线原创 2021-04-16 14:36:17 · 2646 阅读 · 0 评论