![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
uixjhn
这个作者很懒,什么都没留下…
展开
-
八大算法思想———分治算法
各个击破的分治思想定义:采用各个击破的方法,将一个规模为N的问题分解为K个规模较小的子问题要求:每个小问题相互独立且与原问题性质相同步骤:1,分解,将要解决的问题划分为若干个规模较小的同类的问题2,求解,将子问题进行用较简单的方法进行求解3,合并,按照原问题要求,价格子问题解逐层合并实战演练public class TheCalanderOfGame { //分治思想 //假设有8个队伍比赛,每个队伍每天只比一次,且每个队都要和其他队伍比赛一次,比赛n-1天原创 2022-01-15 12:38:24 · 300 阅读 · 0 评论 -
八大算法思想三——递归思想
充分利用自己的递归思想递归算法是在函数或子过程的内部,直接或间接的调用自己的算法使用时,要注意以下:1,明确终止条件,跳出递归的条件2,程序相对简单,但运行效率不高,容易造成栈溢出,一般不提倡典型例题:汉洛塔问题:汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上转载 2021-10-29 20:52:52 · 109 阅读 · 0 评论 -
八大算法思想二——递推法
聪明一点的递推法递推法:犹如稳重的老将,使用的就是“稳扎稳打”的策略,不断利用现有的信息推导出新的东西,在日常使用中有两种方法:1,顺推法:从已知的条件出发,逐步推导得到解决问题的方法,例如斐波那契数列2,逆推法:从已知的结果出发,用迭代的表达式逐步推出问题的开始条件以下为两个典型的例子:用java编写public class recurre {// 顺推法// 斐波那契数列// 兔子繁殖问题// 兔子只有在两周后才有繁殖能力public void rabbi原创 2021-10-29 09:24:50 · 504 阅读 · 0 评论 -
八大算法思想----枚举法
最‘笨’的枚举法故名思意,就是把解情况都列出来,看哪种情况有解符合条件,是最常用最容易想到的一种,但运行时间长,运算量大使用要重点注意三点:1,范围,一定要把符合的情况的全部列出来2,终止条件,即符合解情况的条件例子:一,百元买百鸡:# 枚举法一定要注意两点:变量范围,终止条件def onehunredAndChick():# // 百元买百鸡# // 公鸡5元,母鸡3元,小鸡3只一元# // 枚举法求解 chicld=0 for man in ran原创 2021-10-27 14:17:00 · 234 阅读 · 0 评论