摘要:
1.你对贪心算法的理解 贪心算法是指在对问题进行求解时,在每一步选择中都采取最好或者最优的选择,从而希望能够导致结果是最好或者最优的算法。 贪心算法与动态规划相识,都是求问题的最优子结构性质,但是贪心算法是依赖与上一问题的最优解,而动态规划依赖于将来问题的最优解,所以贪心算法法则是从上而下,动态规划 阅读全文
摘要:
1.实践题目 程序存储问题 2.问题描述 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多 阅读全文
摘要:
1.对动态规划算法的理解 动态规划与分治法相似,都是将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解中得到原问题的解。但是区别在于动态规划每个子问题并非独立,而是相互有联系。 动态规划可以用表格存储每个子问题的最优解,有需求时使用。 2.分别列出编程题1、2的递归方程 1.m[i 阅读全文
摘要:
1.实践题目 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 输入格式: 输入有n+1行: 第 1 行是数字三角形的行数 n,1<=n<=100。 接下来 n行是数字三角形各行中的数 阅读全文
摘要:
1.分治法是将问题分解为多个子问题,通过解决子问题后合并为原命题来解决原问题。 2.分治法可以缩短问题的时间复杂度。 3.拓展出新的思路,解决原有方法不能解决的问题 结对编程可以使我原先不清晰的代码变得简单易懂,两个人思考问题方向可能不一致,最终决定谁的方法简单正确 在去以其思路去构思,可以大大改善 阅读全文
摘要:
一、问题 二、思路分析 对二分查找的改进,假设二分查找最后结果(mid)比需要查找的要大,则(mid)为大于所需查找数,且(mid-1)小于所需查找数 假设二分查找最后结果(mid)比需要查找的要小,则(mid)为小于所需查找数,且(mid+1)大于于所需查找数 三、算法分析 #include <i 阅读全文