java 實現n個整數的全排列

實現步驟:
輸入:n個整數的序列
1:設置變量i=0;
2:置第i個位置的元素爲排頭元素
3:遞歸求排頭元素外的n-1個元素的全排列
4:將排頭回歸第i個位置
5:i++
6:如果i<n,則轉步驟2;否則算法結束。

代碼實現如下:

public class permutation {
    public static void perm(int A[],int k,int n){
        int i;
        if(k==n){           //k表示已排好前k個元素
            for(i=0;i<n;i++){
                System.out.print(A[i]);
            }
            System.out.print("\n");
        }else{
            for(i=k;i<n;i++){
                int temp;   
                temp=A[i];    //置第i個位置的元素爲排頭元素
                A[i]=A[k];
                A[k]=temp;
                perm(A,k+1,n);   //遞歸求排頭元素外的n-1個元素的全排列
                temp=A[i];       //將排頭回歸第i個位置   
                A[i]=A[k];
                A[k]=temp;
            }
        }
    }
    public static void main(String args[]){
        int n=3;
        int k=0;
        int A[]=new int[]{1,2,3};
        perm(A,k,n);//測試,輸出1,2,3的全排列
    }

}
發佈了34 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章