参考解答
这是一个排列的例子,它所做的工作是将输入的一个字符串中的所有元素进行排序并输出,例如:你给出的参数是”abc” 则程序会输出: abc acb bac bca cab cba a.算法的出口在于:low=high也就是现在给出的排列元素只有一个时。 b.算法的逼近过程:先确定排列的第一位元素,也就是循环中i所代表的元素, 然后low+1开始减少排列元素,如此下去,直到low=high public class Foo {
public static void main(String[ args) {
permute(“abc”);
public static void permute(String str) {
char[ strArray = str.toCharArray();
permute(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 += list[i;
System.out.println(cout);
else {
for (i = low; i <= high; i++) {
char temp = list[low;
list[low = list[i;
list[i = temp;
permute(list, low + 1, high);
temp = list[low;
list[low = list[i;
list[i = temp;
相似问题
什么是递归?
什么是递归?
重写和重载的区别是什么?
重写和重载的区别是什么?
MVC模式中M V C每个代表意义是什么?
MVC模式中M,V,C每个代表意义是什么?
JavaScript能否操作cookie和session?
JavaScript能否操作cookie和session?
Java异常处理中 try {}里有一个return语句 那么紧跟在这个try后的finally {
Java异常处理中,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
