收藏 分享(赏)

java递归的经典例子.doc

上传人:fcgy86390 文档编号:12261124 上传时间:2021-12-07 格式:DOC 页数:3 大小:27.50KB
下载 相关 举报
java递归的经典例子.doc_第1页
第1页 / 共3页
java递归的经典例子.doc_第2页
第2页 / 共3页
java递归的经典例子.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、java 递归的经典例子1。汉诺塔这是递归的超经典的例子,几乎每本程序设计书上谈到递归都会介绍。具体情景不再赘述。以我上述的方法观之:(1)递归的出口在于 disk 数为一的时候(2)向出口逼近:如果不是一,是 n ,则我们先挪动上面 n-1 块 disk,等上面挪完,即递归返回的时候,我们挪动最底下的 disk。仅仅如此,一个貌似十分复杂的问题就解决了,因为挪动那 n-1 块 disk 的时候,会继续向上减少,直到 disk 的数量为一为止。下面给出程序编码(已测试过,运行正常):import javax.swing.JOptionPane;public class Hanoi privat

2、e static final String DISK_B = “diskB“;private static final String DISK_C = “diskC“;private static final String DISK_A = “diskA“;static String from=DISK_A;static String to=DISK_C;static String mid=DISK_B;public static void main(String args) String input=JOptionPane.showInputDialog(“please input the

3、number of the disks you want me move.“);int num=Integer.parseInt(input);move(num,from,mid,to);private static void move(int num, String from2, String mid2, String to2) if(num=1)System.out.println(“move disk 1 from “+from2+“ to “+to2);else move(num-1,from2,to2,mid2);System.out.println(“move disk “+num

4、+“ from “+from2+“ to “+to2);move(num-1,mid2,from2,to2);2。这是一个排列的例子,它所做的工作是将输入的一个字符串中的所有元素进行排序并输出,例如:你给出的参数是“abc“ 则程序会输出:abcacbbacbcacabcba()算法的出口在于:也就是现在给出的排列元素只有一个时。()算法的逼近过程:先确定排列的第一位元素,也就是循环中所代表的元素,然后开始减少排列元素,如此下去,直到public static void permute(String str) char strArray = str.toCharArray();permute(

5、strArray, 0, strArray.length - 1);public static void permute(char list, int low, int high) int i;if (low = high) String cout = “;for (i = 0; i = high; i+)cout += listi;System.out.println(cout); else for (i = low; i = high; i+) char temp = listlow;listlow = listi;listi = temp;permute(list, low + 1, h

6、igh);temp = listlow;listlow = listi;listi = temp;这是一个组合的例子,与上述的例子相似,只是它所做的工作是,输出所给字符串中制定数目的元素的组合种类()程序出口在于,此时只要输出目标数组的所有元素即可()逼近过程,当 的时候,我们先取第一个元素放入目标数组中,然后,如此下去,最后出来。import javax.swing.JOptionPane;public class Combination /* param args*/public static void main(String args) String input = JOptionPan

7、e.showInputDialog(“please input your String: “);String numString = JOptionPane.showInputDialog(“please input the number of your Combination: “);int num = Integer.parseInt(numString);Combine(input, num);private static void Combine(String input, int num) char a = input.toCharArray();String b = “;Combine(a, num, b, 0, a.length);private static void Combine(char a, int num, String b, int low, int high) if (num = 0) System.out.println(b); else for (int i = low; i a.length; i+) b += ai;Combine(a, num - 1, b, i+1, a.length);b=b.substring(0, b.length()-1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报