2018年12月23日
摘要: 实践题目 (工作分配问题) 问题描述:设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小 算法描述(包括解空间,画出测试样例的解空间树,剪枝(约束函数或限界函数)方法描述) 解空间:解空间为{ 阅读全文
posted @ 2018-12-23 19:00 fine_five 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 1、对回溯算法的理解 解决问题的多条路中:从一条路往前走,能进则进,不能进则退回来,换一条路再试,回溯法在用来求问题的所有解时,要回溯到根,且根结点的所有子树都已被搜索遍才结束。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,总是先判断 阅读全文
posted @ 2018-12-23 14:04 fine_five 阅读(116) 评论(0) 推荐(0) 编辑
  2018年12月2日
摘要: 实践题目:程序存储问题 问题描述:设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储 阅读全文
posted @ 2018-12-02 19:35 fine_five 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 当一个问题具有最优子结构性质时,可用动态规划进行求解,有时也使用贪心算法,贪心算法并不从整体上最优加以考虑,它所做出的选择只是从某种意义上的局部最优,并不是所有问题的最优解。 2.请说明汽车加油问题的贪心选择性质 汽车加油问题:假设不到万不得已我们不加油,即除非我们油箱里的油不足以开到下一个加油站, 阅读全文
posted @ 2018-12-02 17:56 fine_five 阅读(134) 评论(0) 推荐(0) 编辑
  2018年11月11日
摘要: 一、实践题目:求最大子段和 二、问题描述 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算法的时间复杂度为O(n)。 三、算法描述 四、算法时间及空间复杂度 阅读全文
posted @ 2018-11-11 00:18 fine_five 阅读(98) 评论(0) 推荐(0) 编辑
  2018年11月10日
摘要: 一、对动态规划算法的理解 动态规划算法思想同分治法思想类似,但比分治法更加精炼,通过建立记录表的方式避免多次计算同个子问题。 其步骤如下:(1)分析最优解结构(该问题是否符合最优子结构的性质) (2)确定子问题的递归结构 (3)计算最优值(通过保留已解决问题答案,使得每个子问题只计算一次,输出最优值 阅读全文
posted @ 2018-11-10 21:04 fine_five 阅读(115) 评论(0) 推荐(0) 编辑
  2018年10月24日
摘要: 一、对二分法思想的理解 二分法的前提是已经排好序的规模为n的元素。 二分法主要用了分治法的基本思想,将大规模的问题,不断地分解为个数大致相同的两半,然后通过比较mid中间值,然后去相对应的检索左右两边的数据,以达到具体目的,如检索到某个值返回其位置。 二、结对编程的体会 终于不再是孤身作战了。有些问 阅读全文
posted @ 2018-10-24 23:16 fine_five 阅读(296) 评论(0) 推荐(0) 编辑
  2018年10月21日
摘要: 一、实践题目 改写二分搜索算法 二、问题描述 设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。 三、算法描述算法 将n个元素分为个数大致相同的两半,mid=(le 阅读全文
posted @ 2018-10-21 20:16 fine_five 阅读(171) 评论(0) 推荐(0) 编辑