编写带有下面声明的例程:
public void permute(String str);
public void permute(char[] str, int low, int high);
第一个例程是个驱动程序,它调用第二个例程并显示String str中字符的所有排序。如果str是"abc",那么输出的串是abc,acb,bca,cab和cba。第二个例程使用递归
public void permute(char[] str, int low, int high) {
if (low >= high) {
System.out.println(new String(str));
return;
}
for (int i = low; i < high; i++) {
char c = str[low];
str[low] = str[i];
str[i] = c;
permute(str, low + 1, high);
c = str[low];
str[low] = str[i];
str[i] = c;
}
}
public void permute(String str) {
permute(str.toCharArray(), 0, str.length());
}
public static void main(String[] args) {
new Test2().permute("abcd");
}
说明:对该算法的大致流程明白,具体还不甚了解,先写下来,以后慢慢研究