public static void perm(String[] str, int start, int end) {
if (start == end) { //当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可 for (int i = 0; i <= end; i++) { System.out.print(str[i] + " "); }
System.out.println(); } else { //多个字母全排列
for (int i = start; i <= end; i++) { String temp = str[start]; //交换数组第一个元素与后续的元素
str[start] = str[i];
str[i] = temp; perm(str, start + 1, end); //后续元素递归全排列 //程序什么时候执行此语句块啊???????????????
temp = str[start]; //将交换后的数组还原
str[start] = str[i];
str[i] = temp; }
}
}此方法是对str中的元素进行全排列,谁能帮我具体分析分啊,因为以前我遇到的递归方法后面都没有语句,但是这个方法后还有三行代码,那么这三行代码在什么时候执行的呢?
if (start == end) { //当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可 for (int i = 0; i <= end; i++) { System.out.print(str[i] + " "); }
System.out.println(); } else { //多个字母全排列
for (int i = start; i <= end; i++) { String temp = str[start]; //交换数组第一个元素与后续的元素
str[start] = str[i];
str[i] = temp; perm(str, start + 1, end); //后续元素递归全排列 //程序什么时候执行此语句块啊???????????????
temp = str[start]; //将交换后的数组还原
str[start] = str[i];
str[i] = temp; }
}
}此方法是对str中的元素进行全排列,谁能帮我具体分析分啊,因为以前我遇到的递归方法后面都没有语句,但是这个方法后还有三行代码,那么这三行代码在什么时候执行的呢?
解决方案 »
- 进程同步问题
- Swing窗体只显示关闭按钮
- 菜鸟提问:怎样把字符串写入到一个Txt文档 可以用缓冲么 比如说 2个人通信 我想把Clinent说的话写入Txt文档再输出
- 用DOM4j插入新元素时都要用XMLWriter把所有的元素往文件里重写一次吗?
- 用DOM如何通过属性来获取XML相对应的值?
- 想做个bbs系统,不知道需要准备什么?
- 请教
- 有没有人做bpel(business processes execute language)的开发的
- 选什么.为什么2
- Annotations are not allowed here
- JToolBar中添加JButton(图片按钮),JButton的大小改变没有效果
- 类间不能访问
和别一递归一样,你比较下二杈树的历遍,也是递归好理解