全排列是一種時間複雜度為:O(n!)的演算法,前兩天給學生講課,無意間想到這個問題,回來總結了一下,可以由7種演算法求解,其中動態循環類似回溯演算法,實現起來比較繁瑣,故總結了6種,以颯讀者。所有演算法均使用JavaScript編寫,可直接運作。
演算法一:交換(遞歸)
1.
2.
3.
4.
Full Permutation(Recursive Swap) - Mengliao Software 5.
6.
5.
6. Full Permutation(Recursive Swap)
8. Mengliao Software Studio - Bosun Network Co., Ltd.
9. 2011.05.24
10.
42.
43.
演算法二:連結(遞歸)
1.
2.
3.
4. Permutation(Recursive Link) - Mengliao Software
5.
6.
7.
Full Permutation(Recursive Link)
Software Software. Co., Ltd.
9. 2012.03.29
10.