摘要: 1.实践题目 :工作分配问题 2.问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 3.算法描述(包括解空间,画出测试样例的解空间树,剪枝(约束函数或限界函数)方法描述) 剪枝的 阅读全文
posted @ 2018-12-23 19:54 kop11 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 1.你对回溯算法的理解(2分) 答:看过一些资料把回溯法当作穷举法+剪枝函数。我认为这是个很清楚的定义。在解空间树中,从根结点出发,以深度优先方式搜索整个解空间,在这个过程中,添加一些条件,如果在某个节点不满足,则往回移动到前一个节点。 2.请说明“子集和”问题的解空间结构和约束函数(2分) 答:这 阅读全文
posted @ 2018-12-23 19:24 kop11 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 实践题目 问题描述 有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数。 算法 阅读全文
posted @ 2018-12-02 22:48 kop11 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 你对贪心算法的理解(2分) 答:在解决一个问题中总做出当前看起来最好的选择,并不从整体上考虑。 请说明汽车加油问题的贪心选择性质(2分) 答:加油站之间的距离与能走的最大距离作比较,如果小于n,则继续往下加,如果距离m大于n,则加油再继续往下走。 请说明在本章学习过程中遇到的问题及结对编程的情况(1 阅读全文
posted @ 2018-12-02 22:34 kop11 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 答:数字三角形。 2.问题描述 答:给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 3.算法描述 答:for(int i = n - 2; i >= 0; i--){ 阅读全文
posted @ 2018-11-04 23:16 kop11 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1.你对动态规划算法的理解(2分) 答:动态规划算法其实和分治法很像,本质都是把一个大的问题分解成若干个小问题,通过求解子问题得到原问题的解,而子问题一般是存在联系的,用分治法会消耗大量时间,子问题被重复计算多次,如果我们把已解决子问题的答案保存,需要时拿出来用,这样可避免大量计算,我们用一个表来记 阅读全文
posted @ 2018-11-04 23:03 kop11 阅读(106) 评论(0) 推荐(0) 编辑
摘要: int BinarySearch(int a[],int x, int n){//在数组a[i]中查找X,找到返回X在数组的位置,否则返回-1 int left = 0; int right = n-1; int count = 0;//设数组位置左边为0;右边为n-1;定义count为比较次数变量 阅读全文
posted @ 2018-10-14 23:53 kop11 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 1、请谈一下你对二分法思想的体会。 答:二分法搜索我们早在大一下学期就已经学过,二分法用的是分治的思想,将排好序的n个元素分成左右大小一样的两半,取a[n/2]与X进行比较。当X=a[n/2]时,算法完成;当X>a[n/2]或X<a[n/2]时,在a[n/2]的右边或左边继续搜索。每一次进行比较,数 阅读全文
posted @ 2018-10-14 23:24 kop11 阅读(80) 评论(0) 推荐(0) 编辑