资源描述:
《java实验报告算法设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验报告成绩评定:指导教师:课程名称:Java程序设计实验项目名称:实验6:算法设计学生姓名:学号:专业班级:实验项目类型:基础实验地点:实验时间:一、实验目的与要求:1、掌握常用的查找算法2、掌握常用的排序算法3、掌握递归的应用二、实验内容:1、排序编程题已有一个升序排列的整数数组(含20个整数),要求从键盘输入一个整数后,将该数插入数组,并保持升序,输出该数组的数值验证程序的正确性。importjava.util.Scanner;publicclassInsertApp{publicstaticvoidmain(String[]args){int[]r={5,7,&1
2、1,13,15,16,18,21,22,25,27,29,31,32,33,36,39,43,44};Scannersc二newScanner(System.in);intt=sc.nextlnt();sc.close();ints[]=newint[21];System.arraycopy(r,0,s,0,r.length);s[20]=t;System.out.println(”未排序的数组为:”);for(inti=0;i<21;i++){System.out.printf(n%d",s[i]);}System.out.printf(H");inti,j,tem
3、p;for(i=l;i=0&&s[j]>temp){s[j+l]=s[j];j";}s[j+l]=temp;}System.out.println(',排好序的数组为:”);for(i=0;i<21;i++){System.out.printf(H%dn,s[i]);}}}输入23,输岀:OD:Jaua>jauaInsentApp岸排存的数组为:578111315161821222527293132333639434423
4、e好序的数组为,578111315161821222325272931
5、3233363943442、特殊数列编程题输出所有的水仙花数,所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身,例如,153=13+53+33。publicclasssx{publicstaticvoidmain(String[]args){intx,y,z;longu,i;for(x=l;x<10;x++){for(y=0;y<10;y++){for(z=0;z<10;z++){u=x*x*x+y*y*y+z*z*z;i=x*100+y*10+z;if(u==i)System.out.println(i);}}}}}3>分析程序,回答题后问题publiccl
6、assBinarySearch{publicstaticvoidmain(String[]args){int[]r={5,13,19,21,37,56,64,75,80,88,92};intkey=56;intlow=0,high=r.length-1,mid=-1;while(low<=high){mid=(low+high)/2;if(r[mid]==key){break;}if(r[mid]>key)high=mid-l;elselow=mid+l;}if(low>high){System.out.println(nnotfound!n);}else{System<
7、out.println(nfoundatn+mid);}}}1)当key二21时,写出每次循环low、high和mid以及运行输出结果的值2)当key二22时,写出每次循环low、high和mid以及运行输出结果的值1)当key=64时,写出每次循环low、high和mid以及运行输出结果的值修改程序,使每次循环后输岀high>mid、lowwhile(low<=high){mid=(low+high)/2;if(r[mid]==key){System.out.println(Hhigh=H+high);System.out.println(Hmid=H+mid);Sys
8、tem.out.println(,,low=u+low);break;}if(r[mid]>key){high=mid-l;System.out.println(Hhigh=H+high);System.out.println(Hmid=H+mid);System.out.println(Hlow=H+low);}else{low=mid+l;System.out.println(Hhigh=n+high);System.out.println(Hmid=H+mid);System.out.println(Hlow=H+low