摘要:
一、对回溯算法的理解 1、概念:回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标,当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。实际上就是穷举法的改进。回溯法可以避免搜索所有可能的解,可用于求解大规模问题。 2、解空间树及其搜索:回溯法中,问题的解空间一般使用解空间树的 阅读全文
摘要:
1.对贪心算法的理解 对于具有最优子结构性质的问题,除了使用动态规划求解之外,还有另外一种更为简便的算法,就是贪心算法。贪心算法更为简单,更直接且求解效率更高。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广的许多问题都能产生整体最优解或者最优解的很好的近似解。贪心算法通过一系列的选择得到问 阅读全文
摘要:
一、实践题目 程序存储问题:设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序。对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数。 阅读全文
摘要:
一、基本思想 与分治法相似,基本思想,将求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 但是它们也有很大的不同之处,即适用于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的。 二、设计步骤 动态规划法适用于最优化问题,通常可按以下4个步骤设计: 1)找出最 阅读全文
摘要:
1、实践题目:7-1 数字三角形 2、问题描述: 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 输入格式: 输入有n+1行: 第 1 行是数字三角形的行数 n,1<=n<=100。 阅读全文
摘要:
一、对分治法思想的体会 1、分治法的本质 将要求解的较大规模的问题分割成k个更小规模的子问题,对这k个子问题分别求解。如果子问题的规模仍然不够小,则递归划分下去,直到问题规模足够小。 (出于平衡子问题的考虑:尽量使子问题的规模大致相同) 2、书上的分治法算法模式 divide-and-conquer 阅读全文
摘要:
一.实践题目 7-2 改写二分搜索算法 题目来源:《计算机算法设计与分析》,王晓东 设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。 输入格式: 输入有两行: 第 阅读全文