摘要: 你对回溯算法的理解(2分) 回溯法是一种利用深度优先的方式系统搜索问题的解的办法,而正是利用“回溯”的特性,它可以把解空间都“走”一遍,在“走”的过程中记录和寻找所有可行解或者最优解,进而来求解最优解。在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一 阅读全文
posted @ 2018-12-22 11:03 张钧彦 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 实践题目 :工作分配问题 问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入格式: 输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费用 阅读全文
posted @ 2018-12-22 10:30 张钧彦 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 实践报告任选一题进行分析。内容包括: 实践题目 题目来源:王晓东《算法设计与分析》 给定k 个排好序的序列, 用 2 路合并算法将这k 个序列合并成一个序列。 假设所采用的 2 路合并算法合并 2 个长度分别为m和n的序列需要m+n-1 次比较。试设 计一个算法确定合并这个序列的最优合并顺序,使所需 阅读全文
posted @ 2018-12-02 19:47 张钧彦 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 你对贪心算法的理解(2分)贪心算法的实质就是对于所要求解的问题的整体最优解可以通过一系列的局部最优的选择来得到。在使用贪心算法时,我们要做的就是在当前状态下做出最好的选择即可,并不依赖将来要做的选择,也不依赖子问题的解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体 阅读全文
posted @ 2018-11-30 21:49 张钧彦 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 输入格式: 输入有n+1行: 第 1 行是数字三角形的行数 n,1<=n<=100。 接下来 n行是数字三角形各行中的数字。所有数字在 阅读全文
posted @ 2018-11-04 19:33 张钧彦 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 你对动态规划算法的理解(2分)动态规划算法的思想与分治法类似,都是将要求解的问题分解成若干个子问题,但是区别于分治法的是:经分解得到的子问题往往不是独立的。能够使用动态规划算法的问题有以下几个特征:(1)优化原则:一个最优决策序列的任何子序列本身一定是相当于子序列的初始和结束状态的最优决策序列。这个 阅读全文
posted @ 2018-10-31 20:10 张钧彦 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 实践报告任选一题进行分析。内容包括: 题目来源:《计算机算法设计与分析》,王晓东 设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。 输入格式: 输入有两行: 第一 阅读全文
posted @ 2018-10-13 20:09 张钧彦 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 1、请谈一下你对二分法思想的体会: 我认为二分法的基本思想:假设数据是按非降序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。个人觉得这种方法体现了“逼近”思想, 阅读全文
posted @ 2018-10-13 19:01 张钧彦 阅读(113) 评论(0) 推荐(0) 编辑