public class ComputePermutation {
public static void main(String[] args) { String str =
"abc";
char[] array = str.toCharArray(); Perm(array,
0, array.length-
1); }
public static void Perm(
char[] array,
int start,
int end) {
if(start == end){
for(
int i =
0; i <= end; i++) System.out.print(array[i]+
" "); System.out.println(); }
else{
for(
int i = start; i <= end ; i++){ exchange(array, start, i); Perm(array, start+
1, end); exchange(array, start, i); //恢复数列为原数列,便于选择下一个首字符。 } } }
public static void exchange(
char[] array,
int start,
int i){
char temp = array[start]; array[start] = array[i]; array[i] = temp; } }