摘要:
阅读全文
摘要:
1.你对回溯算法的理解 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 2.请说明“子集和”问题的解空间结构 阅读全文
摘要:
1.实践题目:工作分配问题 2.问题描述 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每 一个人都分配1 件不同的工作,并使总费用达到最小。 3.算法描述本题思想可借鉴旅行售货员算法,采用回溯子空间树的方法回溯,并利用isVisited 阅读全文
摘要:
你对贪心算法的理解 贪心算法,顾名思义,是通过每次决策都选择当前条件的最优解,从而得到整体最优解。贪心算法总作出以现在的条件看来最好的选择。贪心算法的这一特性使得其具有一定的局限性。如果局部最优并不代表整体最优的话,那么贪心算法就失去了作用。印象特别深的是上课时老师举了收银员找钱的例子。当货币面额为 阅读全文
摘要:
1.实践题目:删数问题 2.问题描述: 给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最小的删数方案。 3.算法描述: 根据我的观察,要删的数有以下规则: 1)从左往右数,第一个递减数 阅读全文
摘要:
1.实践题目:数字三角形 2.问题描述: 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 3.算法描述: 首先,将这个数字三角形存储在一个二维数组num[n+1][n+1]中,且采用 阅读全文
摘要:
1.对动态规划算法的理解 动态规划算法是一个将待求解问题分解为若干子问题,通过求解子问题的解得到原问题的解的算法(与分治法有点类似)。它是解决多阶段决策过程最优化问题的一种方法,可以把一个n维最优化问题转化为n个一维最优化问题来求解。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达 阅读全文
摘要:
实践题目:二分查找 问题描述: 输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。 算法描述: 伪代码如下: while (左边界left <= 右边界right) { middl 阅读全文
摘要:
学了算法的第二章以后,我对于算法思想有了进一步的理解。分治法的化繁为简,化难为易的思想,在日常生活中也能很好地体现出来。如果应用得当,往往能起到峰回路转,茅塞顿开的效果。 第二章的PTA实践,第一第二题其实检验了我们对二分搜索的掌握,以及算法的改写能力。第三题我觉得有点难度,因为它给出的序列最大长度 阅读全文