摘要: 一、你对回溯算法的理解 算法是以深度优先遍历为策略的有选择性的穷举法。遍历左子树后之后回溯遍历右子树,选取最优解。剪枝函数可以减少选择,快速排除不满足的答案,更快找到最优解。 二、请描述子集和中解空间结构以及约束函数 1.解空间结构 类似树,每个节点都有两个子树,第n层代表第n个物品的选择。 2.约 阅读全文
posted @ 2018-12-23 18:30 鸡丝面 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 一 、 实践题目 工作分配问题 二 、 问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入格式: 输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数 阅读全文
posted @ 2018-12-23 18:16 鸡丝面 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 一、实践题目 7-1 最优合并问题 二、问题描述 给定k 个排好序的序列, 用 2 路合并算法将这k 个序列合并成一个序列。 假设所采用的 2 路合并算法合并 2 个长度分别为m和n的序列需要m+n-1 次比较。试设 计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。 为了进行比较, 阅读全文
posted @ 2018-11-28 11:19 鸡丝面 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 一、你对贪心算法的理解 贪心算法的两个基本要素:1.贪心选择性 2.最优子结构 每一步都有一组选择,作出当前看来最好的选择,希望通过局部优化得到全局优化。 二、请说明汽车加油问题的贪心选择性质 在剩余油量的情况下,走的路程要最长方可再次加油;每次重新加油后,根据加油站之间的距离决定下一次加油站点并使 阅读全文
posted @ 2018-11-28 11:01 鸡丝面 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 一、实践题目 数字三角形 二、问题描述 计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。 三、算法描述 描述:自底向上的将两行相加之和最大的数储存在数组中,最后dp[1][1]即为所求。 核心算法:dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+dp[i][ 阅读全文
posted @ 2018-11-11 20:56 鸡丝面 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 一、对动态规划的理解 动态规划类似分治法,是将问题分解求解子问题的算法。但动态规划子问题并不是相互独立的,所以会通过保存计算过的子问题的结果来得到多项式时间算法。 动态规划分为以下四步骤: 1.找出最优解 2.递归最优值 3.自底向上计算最优值 4.构造最优解 二、分别列出编程题1、2的递归方程 编 阅读全文
posted @ 2018-11-11 20:41 鸡丝面 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 一、实践题目 输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 二、问题描述 输入格式: 输入共三行: 第一行是n值; 第二行是n个整数; 第三行是x值。 输出格式: 输出x所在 阅读全文
posted @ 2018-10-21 21:46 鸡丝面 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 一.对二分法思想的体会 二分法主要用于有序数组中查找元素,其时间复杂度相比之下更小。 不断变换指针位置缩小查找区间范围。 其主要代码为: 二.结对编程情况汇报 和能力强的同学一起组队,有很多值得学习的地方,比如算法思想、代码风格,甚至快捷键的使用。 探讨思想后合作完成代码,可以理清思路再动手实践,收 阅读全文
posted @ 2018-10-15 22:20 鸡丝面 阅读(153) 评论(0) 推荐(0) 编辑