摘要: 1.回溯算法的理解 回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。算法搜 索至解空间树的任一结点时,先判断该结点是否包含问题的解,如果肯定不包含,则跳过对以该结点为根的子树的搜索,逐层向其祖先 结点回溯。否则,进入该子树,继续按深度优 阅读全文
posted @ 2018-12-19 11:07 bigold 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目:第2题(工作分类问题) 2.问题描述: 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入格式: 输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n 阅读全文
posted @ 2018-12-17 20:07 bigold 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 第三题(程序存储问题 ) 2.问题描述 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计 阅读全文
posted @ 2018-12-01 13:26 bigold 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 1. 贪心算法的理解 贪心算法总是做出在当前看来是最好的选择,贪心算法并不是从整体最优上加以考虑,它所做出的的选择只是在某种意义上的局部最优选择. 即在当前状态下做出最好的选择,,再去解出这个选择后产生的子问题. 2. 汽车加油问题的贪心选择 为了使加油的次数最少,我们的贪心选择应该是在每次前行时, 阅读全文
posted @ 2018-12-01 13:15 bigold 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目:数字三角形 问题描述:给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 2.问题解析: 这其实是一道非常简单的动态规划问题。问题解决办法是建一个表,初值为三角形对应位置的 阅读全文
posted @ 2018-11-11 19:41 bigold 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 1.动态规划的理解 动态规划算法适用于解最优化问题,具体有如下三个基本步骤设计: (1)找出最优解的性质 (2)递归地定义最优值 (3)以自底向上的方式计算出最优值 同时它兼具: 1.最优子结构 2. 重叠子问题 3. 备忘录方法 这几项基本要素。 能够保存已解决子问题的答案,避免了重复进行大量计算 阅读全文
posted @ 2018-11-04 23:37 bigold 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 题目:二分查找 输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 感想:其实这道题很简单的,只需要给二分查找的比较算法中添加一个简单的计数器就可以了,但要注意这个计数器必须放在二 阅读全文
posted @ 2018-10-21 23:51 bigold 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 二分搜索算法 1.概述:二分搜索算法是一种运用了分治思想的典型查找算法,充分利用了元素间的次序关系,算法的最坏情况下的时间复杂为O(logn) 2.主要思路:将n个元素分成个数大致相同的两半,取a[n/2]与x作比较。如果x=a[n/2],则找到x,算法终止;如果x<a[n/2],则只在数组a的继续 阅读全文
posted @ 2018-10-15 00:14 bigold 阅读(283) 评论(0) 推荐(0) 编辑