摘要: 1.你对回溯算法的理解 我认为回溯法就是把一个问题中所有的解都列举出来,然后通过限界函数和约束函数来进行剪枝,从而在剩余的有可能的解中得出最优解。 2.请说明“子集和”问题的解空间结构和约束函数 “子集和”问题的解空间结构是一棵子集树,每个结点有两个子结点代表第i个数选或者不选。约束函数为当前的子集 阅读全文
posted @ 2019-12-19 21:13 陈裕恒 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 1.你对贪心算法的理解 经过多次做题与探讨后我认为其实贪心算法与动态规划是比较相似的,都是依靠最优子结构性质来逐步求出最终问题的解,而区别在于动态规划普遍适用,但是步骤会比较多,时间复杂度会较高,贪心算法相比起来更容易实现,但不一定每个题目都能用贪心算法,而且解题时贪心策略的选择十分重要,如果没有清 阅读全文
posted @ 2019-11-21 17:05 陈裕恒 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目:4-1 程序存储问题 2.问题描述 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是 li,1≤i≤n。 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁 阅读全文
posted @ 2019-11-19 00:59 陈裕恒 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1. 你对动态规划算法的理解 我觉得动态规划算法其实与分治法有很多相似之处,都是先要将问题分解成子问题再进行解决,而动态规划更多是子问题之间有联系,一个子问题的解决有可能需要依赖其他子问题,而要解决整个问题需要先分析找出子问题的联系然后写出递归方程,最后再填表或者用递归方法求解。动态规划算法运用到了 阅读全文
posted @ 2019-11-05 14:02 陈裕恒 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 1.实践题目 7-2 最大子段和 2.问题描述 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算法的时间复杂度为O(n)。 3.算法描述 #include 阅读全文
posted @ 2019-10-20 20:44 陈裕恒 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 分治法学习体会:在刚开始学的时候听老师讲解觉得还是挺简单,但是到了自己动手操作的时候发现并不然,直到后来慢慢领悟到原理后就能顺利打出来了,其实我认为分治法不仅在算法设计程序时作用巨大,也能给我们的生活带来启示,在生活中遇到繁琐的事情时,我们可以利用分治法思想来化整为零,从而提高我们解决事情的效率。 阅读全文
posted @ 2019-10-15 13:43 陈裕恒 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 1.代码规范(参考google的c++代码规范) 包含文件的名称及次序: 将包含次序标准化可增强可读性、避免隐藏依赖(hidden dependencies,注:隐藏依赖主要是指包含的文件编译),次序如下:C 库、C++库、其他库的.h、项目内的.h。 命名规范: 1、总体规则:不要随意缩写,如果说 阅读全文
posted @ 2019-09-23 21:53 陈裕恒 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 1.代码规范(参考google的c++代码规范) 包含文件的名称及次序: 将包含次序标准化可增强可读性、避免隐藏依赖(hidden dependencies,注:隐藏依赖主要是指包含的文件编译),次序如下:C 库、C++库、其他库的.h、项目内的.h。 命名规范: 1、总体规则:不要随意缩写,如果说 阅读全文
posted @ 2019-09-08 23:06 陈裕恒 阅读(147) 评论(0) 推荐(0) 编辑