摘要: 1.你对回溯算法的理解 回溯算法类似于枚举法,先确定一个解空间然后进行深度优先搜索,在约束函数和限界函数下不停剪枝以减少遍历次数,当某条路径遍历完成或者是不满足条件便进行“回溯”返回上一层,再进入另一条路径,从满足条件的路径中选择最优路径作为这个问题的最优解。 2.请说明“子集和”问题的解空间结构和 阅读全文
posted @ 2018-12-24 18:51 Kevin_LLL 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 工作分配问题 2.问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 3.算法描述(包括解空间,画出测试样例的解空间树,剪枝(约束函数或限界函数)方法描述) 如图所示 阅读全文
posted @ 2018-12-24 18:30 Kevin_LLL 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 1.你对贪心算法的理解 d贪心算法不难理解,就是选择当下看上去是最好的解决方法,也就是说,它是一种局部最优解,但是同时我们要考虑的是这个局部最优解适不适合于全局,如果全局得不到最优解,那就错了,所以贪心算法的难点在于你的最优解适不适用于全局 2.请说明汽车加油问题的谈心选择性质 汽车加油问题就是在汽 阅读全文
posted @ 2018-12-02 18:13 Kevin_LLL 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 7-1 最优合并问题 2.问题描述 给定k 个排好序的序列, 用 2 路合并算法将这k 个序列合并成一个序列。 假设所采用的 2 路合并算法合并 2 个长度分别为m和n的序列需要m+n-1 次比较。试设 计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。 为了进行比较, 阅读全文
posted @ 2018-12-02 18:05 Kevin_LLL 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 1.对动态规划法的理解 动态规划和分治法有类似之处,都是将问题分解成若干个子问题进行求解,这些子问题往往都有一定的联系,动态规划法先对某个问题最优解的结构特征进行刻画,然后建立起递归方程式,然后计算出最优值,递归运算时,通常会有许多子问题被计算多次,利用动态规划,让每个子问题计算一次后保存下来,这样 阅读全文
posted @ 2018-11-11 21:31 Kevin_LLL 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 数字三角形 2.问题描述 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 3.算法描述 第一行只有一个数,无论哪条路径都要经过第一行,所以开辟一个二维数组从底至顶进行循 阅读全文
posted @ 2018-11-11 20:35 Kevin_LLL 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 1、实践题目 输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 2、问题描述 利用二分法在一个有序的序列中查找一个已知数,若查到,输出该数的下标和比较次数,若查不到,输出-1和比 阅读全文
posted @ 2018-10-14 17:39 Kevin_LLL 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 1、我对二分法思想的体会: (1)二分法是分治法的一种,在遇到较大规模的问题的时候可以把它变成原来的一半,相对普通查找大大降低了时间复杂度(如顺序搜索需要O(n)次比较而二分搜索最坏情况下只用O(logn)) (2)二分法也具有一定的局限性,在二分搜索的时候需要序列是有序的,否则还需进行排序,这样效 阅读全文
posted @ 2018-10-14 16:53 Kevin_LLL 阅读(102) 评论(0) 推荐(0) 编辑