算法分析与设计(答案)

算法分析与设计(答案)

ID:14308214

大小:96.50 KB

页数:8页

时间:2018-07-27

算法分析与设计(答案)_第1页
算法分析与设计(答案)_第2页
算法分析与设计(答案)_第3页
算法分析与设计(答案)_第4页
算法分析与设计(答案)_第5页
资源描述:

《算法分析与设计(答案)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、算法分析与设计(答案)一:二分查找的递归实现算法importjava.util.Arrays;importjava.util.Scanner;publicclassBinSearch{publicstaticintbinsearch(int[]a,intstart,intstop,intb){if(start>stop)return-1;inti=(start+stop)/2;if(a[i]==b)returni;if(a[i]>b)returnbinsearch(a,start,i-1,b);returnbinsearch(a,i+1,stop,b);}/***@par

2、amargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubScannersc=newScanner(System.in);intn=sc.nextInt();inta[]=newint[n];System.out.println("输入数组元素");for(inti=0;i

3、t.print(a[i]+"");}System.out.println();System.out.println("输入要查找的数");intb=sc.nextInt();intx=binsearch(a,0,n-1,b);if(x==-1){System.out.println(b+"不在数组中,请输入另一个数");b=sc.nextInt();x=binsearch(a,0,n-1,b);}System.out.println(b+"在数组中的第"+(x+1)+"个位置");}}二:Ackerman函数的递归实现算法importjava.util.Scanner;p

4、ublicclassTest2{privatestaticintakm(intn,intm){//递归设计intr,g;if(n==1&&m==0)r=2;elseif(n==0&&m>=0)r=1;elseif(m==1)r=n*2;elseif(m==2)r=(int)Math.pow(2,n);elseif(m==0&&n>=2)r=n+2;else{g=akm(n-1,m);r=akm(g,m-1);//两次连着递归}returnr;}publicstaticvoidmain(String[]args){try{System.out.println("请输入1个大

5、于等于0的整数:");Scannersc=newScanner(System.in);intn=sc.nextInt();System.out.println("请再输入1个大于等于0的整数:");intm=sc.nextInt();System.out.println(akm(n,m));}catch(Exceptione){}}}三:全排列的递归实现算法importjava.util.Scanner;publicclassAllSort{//全排列publicstaticvoidmain(String[]args){Scannersc=newScanner(Syste

6、m.in);System.out.println("输入需要全排列的元素个数");intn=(char)sc.nextInt();intbuf[]=newint[n];System.out.println("请依次输入每一个元素");for(inti=0;i

7、nti=0;i<=end;i++){System.out.print(buf[i]);}System.out.println();}else{//多个字母全排列(普遍情况)for(inti=start;i<=end;i++){//(让指针start分别指向每一个数)inttemp=buf[start];//交换数组第一个元素与后续的元素buf[start]=buf[i];buf[i]=temp;perm(buf,start+1,end);//后续元素递归全排列temp=buf[start];//将交换后的数组还原buf[sta

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。