摘要: 1、实践题目 :工作分配问题 2、问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入:输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费 阅读全文
posted @ 2018-12-24 19:46 一只肥 阅读(163) 评论(0) 推荐(0)
摘要: 1、你对回溯算法的理解(2分) 回溯法可以系统搜索一个问题的所有解(回溯到根)或任一解(只要有一个解满足就可停止遍历)。首先要确定好问题的解空间及解空间结构,以深度优先方式搜索解空间,并用剪枝函数得到最优解。 其中剪枝函数又包括约束函数(用于判断是否满足条件)以及限界函数(用于得到最优解)。 常遇到 阅读全文
posted @ 2018-12-24 19:10 一只肥 阅读(152) 评论(0) 推荐(0)
摘要: 1、对贪心算法的理解: 贪心算法和动态规划法相比,不同点在于贪心算法总是做出当前看来最好的选择,而不是从整体最优考虑。(但在选择依据时要还是要考虑整体最优,如活动安排时选择最早开始,最早结束还是最短时间)贪心算法相对比较简单,一路走到底即可 2、汽车加油问题的贪心选择性质 到一个站点,若还有足够的汽 阅读全文
posted @ 2018-12-02 20:43 一只肥 阅读(80) 评论(0) 推荐(0)
摘要: 1、对动态规划算法的理解: 动态规划和上一章学的分治策略都是将一个问题分解成多个子问题进行求解,不同的是,动态规划的子问题不是互相独立的,一个子问题的求解要依靠另一个子问题的答案。因此就有了填表的方法,填表时要注意填的顺序,根据已填的内容动态地决定未填的内容。这样的算法避免了重复大量的计算从而降低了 阅读全文
posted @ 2018-11-11 18:38 一只肥 阅读(148) 评论(0) 推荐(0)
摘要: 1、实践题目:数字三角形 2、问题描述:给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 输入格式: 输入有n+1行: 第 1 行是数字三角形的行数 n,1<=n<=100。 接下来 阅读全文
posted @ 2018-11-04 22:22 一只肥 阅读(213) 评论(0) 推荐(0)
摘要: 1、请谈谈你对二分法思想的理解 二分法可以优化遍历数组的时间复杂度,通过不断把序列一分为二,每一个子序列又可以再一分为二,逐步缩小要搜索的序列范围,从而逐步逼近答案 二分法的思路也可以用于把一个大问题分解成多个子问题从而引出更多的分治策略。 2、结对编程情况汇报 结对编程可以给做题增加一个讨论的过程 阅读全文
posted @ 2018-10-14 21:29 一只肥 阅读(135) 评论(0) 推荐(0)
摘要: 1、实践题目 改写二分搜索算法 2、问题描述 设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。 输入格式: 输入有两行: 第一行是n值和x值; 第二行是n个不相同 阅读全文
posted @ 2018-10-14 21:07 一只肥 阅读(206) 评论(0) 推荐(0)