摘要: 1、实践题目 工作分配问题 2、问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 3、算法描述(包括解空间,画出测试样例的解空间树,剪枝(约束函数或限界函数)方法描述) void 阅读全文
posted @ 2018-12-24 19:48 张西西 阅读(190) 评论(0) 推荐(0)
摘要: 1、你对回溯算法的理解 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。通过解空间建立一棵树,不断向叶子节点探索,发现通过某个节点得不到最优解则返回上一个节点,还有就是“剪枝”,通过上界函数和以及约束函数简化枚举的 阅读全文
posted @ 2018-12-24 19:26 张西西 阅读(135) 评论(0) 推荐(0)
摘要: 1、实践题目 最优合并问题 2、问题描述 给定k 个排好序的序列, 用 2 路合并算法将这k 个序列合并成一个序列。 假设所采用的 2 路合并算法合并 2 个长度分别为m和n的序列需要m+n-1 次比较。试设 计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。 为了进行比较,还需要确 阅读全文
posted @ 2018-12-02 01:43 张西西 阅读(155) 评论(0) 推荐(0)
摘要: 1、你对贪心算法的理解(2分) 贪心算法比动态规划要容易理解,动态规划需要找出递推方程,每一个最优子解会影响下一个最优解,但贪心算法不需要,只需要考虑局部,即当前的最优解,怎么样能做出当前问题的最优解法就是贪心算法。缺点就是每一次的最优解不一定是最终问题的最优解,具体问题要具体分析。 2、请说明汽车 阅读全文
posted @ 2018-12-01 21:48 张西西 阅读(198) 评论(0) 推荐(0)
摘要: 1、实践题目 数字三角形 2、问题描述 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 3、算法描述 文字描述:新建一个二维数组b,用来记录当前数的上一层累加的最大值。由于每一步只能 阅读全文
posted @ 2018-11-01 23:32 张西西 阅读(141) 评论(0) 推荐(0)
摘要: 1、对动态规划算法的理解 动态规划算法与分治法很类似,把一个复杂问题分解成多个子问题分别求解,但不同的是动态规划中,子问题不是独立的,必须要优先算出部分子问题才可以计算出剩下子问题的解。而且一般都遵循某个规律,根据最优子结构。可以从底层推出递归方程从而完成动态规划算法。每一次把最优的子问题的解记录下 阅读全文
posted @ 2018-10-28 13:05 张西西 阅读(129) 评论(0) 推荐(0)
摘要: 1、实践题目:二分查找 2、问题描述: 输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 3、算法描述 ①利用(left+right)/2求出数组中间的下标mid ②判断a【mi 阅读全文
posted @ 2018-10-14 16:44 张西西 阅读(169) 评论(0) 推荐(0)
摘要: 1、请谈一下你对二分法思想的体会 二分法与分治法很像,分治法是将一个规模为n的问题分解为k个规模较小的子问题,把复杂问题简单化,把各个子问题的解合并得到原问题的解,而二分法把原问题不断分成两个,让问题不断的简化直到最简单的子问题。一般可以用递归完成。以二分搜索为例子,每次把数组的平分为两半与目标对比 阅读全文
posted @ 2018-10-14 15:29 张西西 阅读(121) 评论(0) 推荐(0)