求n個數的排列

2022-08-31 10:18:07 字數 499 閱讀 5403

如果給定n個不同字元,將這n個字元全排列,最終的結果將會是n!種。如:給定 a、b、c三個不同的字元,則結果為:abc、acb、bac、bca、cab、cba一共3!=3*2=6種情況。

public class test6

public static void count(vectorv1,vectorv2)

system.out.print("\n");

count++;

return;

}for (int i = 0; i < v1.size(); i++) }}

注:主要考察的是遞迴

如果需要輸出的是含重複的資料是可以改為

public static void count(vectorv1,vectorv2)

system.out.print("\n");

count++;

return;

}for (int i = 0; i < v1.size(); i++)

}

N個數的全排列

我採用的方法是類似密碼箱的轉輪來得到所有的排列組合 比如求 1,2,3,4的所有排列組合 採用遞減式輪轉來生成 n 4 以1234為初始值 得到如下的所有4個組合,放入最終的容器中 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3 n 3 以上面的四個作為初始值,在第三位開始輪轉 得到...

輸出排列的第n個數

華電北風吹 最後修改日期 2015 8 6 輸入 乙個整數n和乙個字串鍊錶 預設鍊錶已經由小到大排序好,例如 1,2,3,4,5,6 這個主要是用來計算排列組合次序的,並不是嚴格的排序,但是是預設的順序也行,例如 a,b,c,1,2,3 輸出 輸入鍊錶從最小的排列 輸入排列預設是最小的 開始的第n個...

N個數的全排列 回溯法

思路 問題的解空間為排列樹,乙個排列中元素不能重複,故採用交換的方式,對於排列樹的第i層,擴充套件狀態是a i 可以取a i 到a n 1 的任何元素,即j i到n 1迴圈 將a i 與a j 交換,在這種方式下求出排列後需要恢復,即將a i 與a j 再次交換,回到之前的狀態 回溯 然後繼續求其他...