全排列遞歸實作算法
題目描述:
Java實作:
import java.util.Scanner;
public class Perm {
public static void main(String[] args) {//全排列
// TODO 自動生成的方法存根
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
String list[] = new String[n];
for (int i = ; i < list.length; i++)
list[i] = scan.next();
Perm1(list,,n-);
System.out.println();
}
public static void Perm1(String list[], int k, int m){
if (k == m){//隻剩下一個元素
for (int i = ; i <= m; i++)
System.out.print(list[i]);
//System.out.println();//題目要求一行輸出
}
else{//還有多個元素待排列,遞歸産生排列
for (int i = k; i <= m; i++){
String temp = list[k];
list[k] = list[i];
list[i] = temp;
Perm1(list,k+,m);
String temp1 = list[k];
list[k] = list[i];
list[i] = temp1;
}
}
}
}