常用算法思想

    xiaoxiao2021-04-18  65

    1.穷举算法

    穷举算法是一种最简单的算法,其依赖于计算机的强大计算能力,来穷尽每一种可能的情况,从而达到求解问题的目的。穷举算法效率并不高,但是适合于一些没有明显规律可循的场合。在使用穷举算法时,要明确问题的大难的范围,这样才可以在指定范围内搜索答案。     最简单的例子:鸡兔同笼     在一个笼子里关注数只鸡和兔,共有35个头,94只脚,问:鸡和兔各多少只?

    package cyq1; /** * 鸡兔同笼问题(穷举算法思想) * 分析:可以判断急的数量应该是在0到35只。这样答案锁定在了一定范围内。 */ public class Test_10 { static int chicken; static int rabbit; public static void main(String[] args) { int re=qiongju(35, 94); if (re==0) { System.out.println("无法求解"); }else { System.out.println("笼中有鸡="+chicken+";有兔="+rabbit); } } static int qiongju(int head,int feet){ int i=0,j=0,re=0;//re判断是否有符合条件的值 for(i=0;i<=head;i++){ j=head-i;//总头数减去鸡的头数,剩下的就是兔 if(i*2+j*4==feet){ re=1; chicken=i; rabbit=j; } } return re; } }

    2.递推算法

    递推算法是一种理性思维模式的代表,其根据已有的数据和关系,逐步推导而得到的结果。递推算法适合有着明显公式的场合。 例子:斐波那契数列

    package cyq1; /** * 递推算法思想 * 兔子序列(斐波那契数列)F(n)=F(n-2)+f(n-1),运用了递归公式来求解 */ public class Test_11 { public static void main(String[] args) { System.out.println(Test_11.getCount(8)); } //n表示时间 static int getCount(int n){ int t1,t2; if(n==1 || n==2){ return 1; }else if (n>2) { t1=getCount(n-1); t2=getCount(n-2); return t1+t2; }else { System.out.println("输入不合法"); } return 0; } }
    转载请注明原文地址: https://ju.6miu.com/read-675051.html

    最新回复(0)