摘要: 1.你对回溯法的理解 比较容易理解,像是穷举,但代码实现对自己来说比较难。简单来说就是一棵树,每棵树枝都计算到底,即算出叶子节点也就是结果,通过比较在这些叶子节点中最好的就是问题的解决方案。在这个过程中可以运用剪枝函数剪去一些不必要的节点,减少运算。 一般步骤为:(1)定义一个解空间,它包含问题的解 阅读全文
posted @ 2019-12-22 14:04 曰天哟丶 阅读(96) 评论(0) 推荐(0)
摘要: 你对贪心算法的理解 在对问题求解时,不去考虑整体的最优,而直接地做出当前的最优选择。我个人认为,贪心算法的确是一种简洁直观的算法,但是在不做证明的情况下,很难确认是否能使用贪心算法。对比于分治法以及动态规划,贪心算法更直接、更直观,但贪心算法的适用范围也比较受限。 贪心算法的两个基本要素:贪心选择性 阅读全文
posted @ 2019-11-21 17:13 曰天哟丶 阅读(92) 评论(0) 推荐(0)
摘要: 1.实践题目 程序存储问题 2.问题描述 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多 阅读全文
posted @ 2019-11-19 09:26 曰天哟丶 阅读(120) 评论(0) 推荐(0)
摘要: 1. 你对动态规划算法的理解 适用于解最优化的问题,像是分治法的优化与升级吧。与分治法类似,基本思想是将待解决的问题分成多个子问题,先求解子问题,再结合子问题得到原问题的解。不同的是,动态规划分解得到的子问题不是相互独立的。而且,通过一个表来记录所有已解决的子问题答案,避免了分治法中的大量重复计算。 阅读全文
posted @ 2019-11-03 14:45 曰天哟丶 阅读(105) 评论(0) 推荐(0)
摘要: 实践题目 数字三角形 问题描述 给定一个由 n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形 的顶至底的一条路径(每一步可沿左斜线向下或右斜线向下),使该路径经过的数字总和最大。 算法描述 用动态规划的方式算出自底向上的递归方程式: sum[i][j] =arr[i][j] , i 阅读全文
posted @ 2019-10-20 16:43 曰天哟丶 阅读(123) 评论(0) 推荐(0)
摘要: 基本思想:将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。通过递归解决子问题,最后再将子问题的解合并得到原问题的解。 当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往 阅读全文
posted @ 2019-10-13 20:40 曰天哟丶 阅读(99) 评论(0) 推荐(0)
摘要: 算法第二章上机实践报告 实践题目 7-2 改写二分搜索算法 设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。 输入格式: 输入有两行: 第一行是n值和x值; 第二 阅读全文
posted @ 2019-09-23 00:21 曰天哟丶 阅读(211) 评论(0) 推荐(0)
摘要: 一、(声明:本博客参考自csdn的https://blog.csdn.net/zang141588761/article/details/50608736 以下内容是结合本人编程经验分享我对代码规范的理解和建议) 对于不同的编程语言来说,具体的编码规范可以有很大的不同,但是其宗旨都是一致的,就是保证 阅读全文
posted @ 2019-09-06 14:10 曰天哟丶 阅读(155) 评论(0) 推荐(0)