当前位置: 主页 > JAVA语言

java递归算法实验报告-递归树 算法

发布时间:2023-04-19 10:05   浏览次数:次   作者:佚名

实验报告

课程名称: Java程序设计成绩评定:

实验项目名称:实验6:算法设计指导教师:

学生姓名:学号:专业班级:

实验项目类型:基础实验地点:实验时间:

一、实验目的与要求:

1、掌握常用的查找算法

2、掌握常用的排序算法

3、掌握递归的应用

二、实验内容:

1、排序编程题

已有一个升序排列的整数数组(含20个整数),要求从键盘输入一个整数后,将该数插入数组java递归算法实验报告,并保持升序,输出该数组的数值验证程序的正确性。

import java.util.Scanner;

public class InsertApp {

public static void main(String[] args) {

int[] r={5,7,8,11,13,15,16,18,21,22,25,27,29,31,32,33,36,39,43,44};

Scanner sc=new Scanner(System.in);

int t=sc.nextInt();

sc.close();

int s[]=new int[21];

System.arraycopy(r,0,s,0,r.length);

s[20]=t;

System.out.println("未排序的数组为:");

for(int i=0;i

{System.out.printf("%d ",s[i]);}

System.out.printf("\n");

int i,j,temp;

for(i=1;i

{temp=s[i];j=i-1;

while(j>=0&&s[j]>temp)

{s[j+1]=s[j];

j--;}

s[j+1]=temp;}

System.out.println("排好序的数组为:");

for(i=0;i

{System.out.printf("%d ",s[i]);}}

}

输入23,输出:

java实验报告 算法设计

2、特殊数列编程题

输出所有的水仙花数,所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身,例如,153=13+53+33。

public class sx{

public static void main(String[] args){

int x,y,z;

long u,i;

for( x=1;x

{for( y=0;y

{for( z=0;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、分析程序,回答题后问题

public class BinarySearch {

public static void main(String[] args) {

int[] r={5,13,19,21,37,56,64,75,80,88,92};

int key=56;

int low=0,high=r.length-1,mid=-1;

while(lowkey)

high=mid-1;

else

low=mid+1;}

if(low>high){

System.out.println("not found!");

}else{

System.out.println("found at "+mid);

}}}

1)当key=21时,写出每次循环low、high和mid以及运行输出结果的值

2)当key=22时,写出每次循环low、high和mid以及运行输出结果的值

3)当key=64时,写出每次循环low、high和mid以及运行输出结果的值

修改程序,使每次循环后输出high、mid、low

while(lowkey)

{ high=mid-1;

System.out.println("high="+high);

System.out.println("mid="+mid);

System.out.println("low="+low);}

else

{ low=mid+1;

System.out.println("high="+high);

System.out.println("mid="+mid);

System.out.println("low="+low);}

}

1、当key=21时,输出:

2、当key=22时,输出:

3、当key=64时java递归算法实验报告,输出:

java实验报告 算法设计

java实验报告 算法设计

java实验报告 算法设计

4、递归编程题

用递归的方法求∑

=

20

1

!

n

n(即求1!+2!+3!+….+20!),通过该编程题了解递归的用法。

public class Recu{

static long fun(int n){

if (n==1)

return 1;

else

return n*fun(n-1);

}

public static void main(String[] args){

long sum=0;

long s;

for(int i=1;i