
算法
文章平均质量分 50
赐他一丈红
天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。 人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。
展开
-
贪心法
目录算法设计思想典型例题一、找零钱问题算法优化二、最优装载三、哈夫曼编码算法设计思想贪心法的基本思想是逐步获得最优解。贪心法在求解最优解的问题时,从最初阶段开始,每一个阶段总是做一个局部最优的贪心选择,不断将问题转化成规模最小的子问题。因此,贪心法并不是从整体最优考虑,它只是在某种程度上的局部最优解。贪心法有两个最重要的性质:1.最优子结构的性质:当一个问题的最优解包含子问题的最优解时,称此问题有最优子结构。2.贪心选择性质典型例题一、找零钱问题某单位给每个员工发工资。为了确保不要临时原创 2021-03-24 21:56:07 · 151 阅读 · 0 评论 -
分治法中的归并排序和快速排序
目录算法设计思想典型例题一、归并排序运行结果二、快速排序算法设计思想分治法字面上理解就是“分而治之”,把一个复杂的问题分解成两个或者多个相似的问题,再把子问题分成更小的子问题,直到子问题可以简单的直接求解,原问题的解即子问题解的合并。分治法的基本步骤:1.分解:将原问题分解为若干个子问题;2.解决:若子问题规模较小而比较任意解决,否则继续分解为更小的子问题,直到分解到能够解决掉的子问题;3.合并:将已求解的子问题逐步合并为原问题的解。合并的代价因情况不同有很大的差异,分治法的有效性很大程度上依原创 2021-03-23 17:41:58 · 566 阅读 · 0 评论 -
枚举法
目录算法的设计思想典型例题一、马虎的算式二、完美立方三、生理周期算法的设计思想枚举法是一种蛮力策略,是一种简单的直接解决问题的方法,也是一种非常普遍的方法。它是根据题目中的内容将所有的结果一 一列举出,从中找出合适的解。此方法通常需要多重循环来实现,对每个变量都进行验证,满足条件就为题目的一个解。因此,用枚举法设计的算法时间复杂度通常都是指数级的。利用枚举法解决问题,通常可以从以下两方面进行算法设计1.找出枚举范围,分析问题涉及的各种情况2.找出约束条件,分析满足问题条件的解。典型例题一、原创 2021-03-22 12:48:38 · 2695 阅读 · 0 评论 -
递归法
目录算法设计思想典型例题一、母牛繁殖问题二、输出各位的数字三、汉若塔问题算法设计思想递归就是一个过程或函数在其定义中直接或间接调用自身的一种方法。它通常把一个大型的复杂问题层层转化为一个与原问题相似的规模较小的问题来求解,递归方法只需要少量的程序就可以描述出多次重复计算的解题过程,大大减少了代码量。递归的两个基本要素: 1、递归关系式:确定关系式,即原问题是如何分解为子问题的 2、递归出口:确定递归到什么原创 2021-03-09 21:24:07 · 3191 阅读 · 0 评论 -
递推法
目录设计思想典型例题一、兔子繁殖问题二、最大公约数三、猴子吃桃问题设计思想 利用所求解问题的本身具有的性质(递推关系)来求得问题解得有效方法。具体的做法是:对于一个问题,可以根据N=n之前的一步(n-1)或多步(n-1,n-2,n-3,·····)的结果推导出n时的解:f(n)=F(f(n-1),(n-2),·····) 称为递推关系式。递推算法的关键问题是得到相邻的数据项之间的关系,即递推关系。一般步骤:(1)确原创 2021-03-07 14:54:37 · 2188 阅读 · 1 评论 -
累乘法
这里写目录标题设计思想典型例题一、国王奖赏问题二、交换的算式三、截取数字设计思想多次按相同的累乘规则进行累乘,多次累乘可以用循环结构实现。典型例题一、国王奖赏问题国际象棋有64格,国王奖赏给大臣一些麦子,按第一个格子放1粒,第二格放2粒,第三格放4粒,以后每个格子放前一个格子的两倍。问一共有多少麦子。import java.math.BigInteger;public class Main { public static void main(String[] args) { BigI原创 2021-03-06 23:54:44 · 2475 阅读 · 4 评论 -
累加法
目录设计思想典型例题一、统计对称数(回文数)二、判断天数设计思想累加是指在一个值得基础上重复加上其他的值,典型应用有:求和,计数。典型例题一、统计对称数(回文数)统计10~1000之间的对称数的个数,并打印所有对称数。对称数指一整数从左到右和从右到左是相同的数。例如:12321、656、45654.public class Main { private static int count = 0; public static void main(String[] args) { //原创 2021-03-06 22:50:57 · 1952 阅读 · 0 评论 -
求值法
目录求值法一、判断闰年二、孪生数三、螺旋阵四、百灯判熄求值法求值法是一种最简单的问题求解方法,也是常用的设计算法方法,它是根据给定条件,运用基本的顺序、选择、循环控制结构结局问题。一、判断闰年由键盘输入任意一个年份year,通过程序判断,输出这个年份是否是闰年。import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scann原创 2021-03-06 17:59:30 · 329 阅读 · 3 评论