摘要: 1.你对回溯算法的理解 回溯算法就是一种有组织的系统最优化搜索技术,可以看作蛮力法穷举搜索的改进。它的实质就是在问题的解空间进行深度优先搜索。回溯法常常可以避免搜索所有可能的解,所以它适用于求解组织数量较大的问题。 回溯法的一般步骤: (1).针对所给问题,定义问题的解空间,它至少包含问题的一个(最 阅读全文
posted @ 2018-12-19 01:13 RicardoY 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 7-2 工作分配问题 2.问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入格式: 输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数 阅读全文
posted @ 2018-12-18 10:36 RicardoY 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 1.你对贪心算法的理解 贪心算法指通过一系列的选择来得到问题的解,它所做的每一个选择都是当前状态下的局部最好选择,即(局部最优解 > 全局最优解)。一般来说,凡是经过数学归纳法证明可以采用贪心法的情况都应该采用,因为其具有高效性。同时,如果一个问题具有贪心选择性质和最优子结构性质,那么使用贪心法来对 阅读全文
posted @ 2018-11-28 11:08 RicardoY 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1、实践题目 2、问题描述 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序 阅读全文
posted @ 2018-11-26 12:04 RicardoY 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 输入格式: 输入有n+1行: 第 1 行是数字三角形的行数 n,1<=n<=100。 接下来 n行是数字三角形各行中的数 阅读全文
posted @ 2018-11-07 19:56 RicardoY 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 1.对动态规划算法的理解 基本思想: 动态规划算法与分治法类似,其基本思想也是将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的。同时也会存在有些子问题被重复计算了很多次,为了避免大 阅读全文
posted @ 2018-10-29 23:11 RicardoY 阅读(690) 评论(0) 推荐(0) 编辑
摘要: 一、对二分算法理解 二分算法,又称折半算法,是应用分治策略的典型例子。二分查找主要对有序序列进行对所指定数字的查找,通过不断缩小搜查范围,在比较中间的数后对左右两个数组进行相同操作,以得到最终的带查找数字。时间复杂度logn,对数组较大时能显著提高程序效率。 二、算法代码 阅读全文
posted @ 2018-10-20 17:36 RicardoY 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目:7-1二分查找 2.问题描述:输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 3.算法描述:首先,二分查找在查找前先用left、right表示数组第一和最后一个数 阅读全文
posted @ 2018-10-15 12:07 RicardoY 阅读(146) 评论(0) 推荐(0) 编辑