全排列是一种时间复杂度为:O(n!)的算法,前两天给学生讲课,无意间想到这个问题,回来总结了一下,可以由7种算法求解,其中动态循环类似回溯算法,实现起来比较繁琐,故总结了6种,以飨读者。所有算法均使用JavaScript编写,可直接运行。
算法一:交换(递归)
1.
2.
Full Permutation(Recursive Swap)
8. Mengliao Software Studio - Bosun Network Co., Ltd.
9. 2011.05.24
Full Permutation(Recursive Link)
8. Mengliao Software Studio - Bosun Network Co., Ltd.
9. 2012.03.29
Full Permutation(Recursive Backtrack)
8. Mengliao Software Studio - Bosun Network Co., Ltd.
9. 2012.03.29
8. Full Permutation(Non-recursive Backtrack)
9. Mengliao Software Studio - Bosun Network Co., Ltd.
10. 2012.03.29
8. Full Permutation(Non-recursive Sort)
9. Mengliao Software Studio - Bosun Network Co., Ltd.
10. 2012.03.30
Full Permutation(Non-recursive Modulo)
8. Mengliao Software Studio - Bosun Network Co., Ltd.
9. 2012.03.29