摘要:
1、回溯算法 回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思路是:暴力算法的改进,在通过遍历所有路径基础上,通过回溯(往回找)筛除不可能的路径,提高效率。 一般解题思路: 1.确定一个解空间,它包含问题的解; 2.利用适于搜索的方法组织解空间; 3.利用深度优先法搜索解空间; 阅读全文
摘要:
1.对贪心算法的理解 贪心算法其实很简单,关键是找出最优的贪心方法,保证最多,然后用代码实现就好啦。可能有些难度的就是有些问题并不容易找到最优的贪心法则,就要我们多尝试,举反例,最终找到正确的那一个。 2.程序存储问题 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上 阅读全文
摘要:
单调递增最长子序列 设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。 输入格式: 输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开 输出格式: 最长单调递增子序列的长度 输入样例: 5 1 3 5 2 9 输出 4 1.1 根据最优子结构 阅读全文
摘要:
一 、实践题目 最大子列和问题 二、题目描述 给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ 阅读全文
摘要:
1.分治思想感悟 分治法即对一个很大规模的问题进行分解,得到若干个规模更小的子问题,对子问题单独求解并合并子问题答案得到原问题答案的方法。 用分治法解决最大连续子段和,大整数的乘法运算,矩阵乘法,棋盘覆盖等问题,让我感受到了分治法在解决有规则的复杂问题的简单方便,但是,使用分治算法需要巧妙地分解和设 阅读全文
摘要:
1.编码规范 遵循规则如下 1.头文件 对于C语言来说,头文件的设计体现了大部分的系统设计,不合理的头文件布局是编译时间过长的原因。 有很多人将工程中所有的头文件包含在一个include.h文件中,然后在每一个.c源代码文件中包含include.h头文件,这样做可以让代码看上去简洁,但实际忽视了编译 阅读全文