实验一 java环境及递归算法
一、实验目的与要求
1、熟悉java语言的集成开发环境; 2、通过本实验加深对递归过程的理解 二、实验内容:
掌握递归算法的概念和基本思想,分析并掌握排列问题的递归算法和Hanoi塔问题的递归算法 三、实验内容
1、设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。任意输入一串整数或字符,输出结果能够用递归方法实现整数或字符的全排列。
2、设a,b,c是3个塔座。开始时,在塔座a上有一叠共n个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆eh盘从小到大编号为1,2,…,n,现要求将塔座a上的这一叠圆盘移到塔座b上,并仍按同样顺序叠置。 四、实验步骤
1.理解算法思想和问题要求; 2.编程实现题目要求;
3.上机输入和调试自己所编的程序; 4.验证分析实验结果; 5.整理出实验报告。. (1)实验程序: public class QPL{
public static void main(String[] args){ char c[] = { '1', '2', '3' }; sort(c, 0, c.length - 1); }
public static void sort(char[] c, int begin, int end){ if (begin == end) {
for (int i = 0; i <= end; i++) { System.out.print(c[i]); }
System.out.println(); } else{
for (int i = begin; i <= end; i++){ char temp = c[begin]; c[begin] = c[i]; c[i] = temp;
sort(c, begin + 1, end); c[i] = c[begin]; c[begin] = temp; }
} } }
实验结果:
(2)实验程序:
public class Hanoi{
private static void show(int n,String From,String To){
System.out.println(\把\+n+\号盘子从:\+From+\移动到:\+To); }
private static void move(int n,String From,String Temp,String To){ if(n==1){
show(1, From,To); }
else{
move(n-1, From, To, Temp); show(n, From, To);
move(n-1, Temp,From, To); } }
public static void main(String[]args){ move(4,\,\,\); } }
实验结果:
五.实验总结
通过此实验我更深一步的了解了递归算法,在编写程序时,由于还未养成良 好的编程习惯,对java语言和C语言的语法有些混淆,所以导致许多细节方面出 现一些错误,得时不时的查看书本,浪费了一些时间。
相关推荐: