复制代码 代码如下

全排列是一种时间复杂度为:O的算法,前两天给学生讲课,无意间想到这个问题,回来总结了一下,可以由7种算法求解,其中动态循环类似回溯算法,实现起来比较繁琐,故总结了6种,以飨读者。所有算法均使用JavaScript编写,可直接运行。算法一:交换复制代码 代码如下:

Full Permutation – Mengliao Software

Full Permutation
Mengliao Software Studio – Bosun Network Co., Ltd.
2011.05.24

算法二:链接复制代码 代码如下:

Full Permutation – Mengliao Software

Full Permutation
Mengliao Software Studio – Bosun Network Co., Ltd.
2012.03.29

算法三:回溯复制代码 代码如下:

Full Permutation – Mengliao Software

Full Permutation
Mengliao Software Studio – Bosun Network Co., Ltd.
2012.03.29

算法四:回溯复制代码 代码如下:

Full Permutation(Non-recursive Backtrack) – Mengliao Software

Full Permutation(Non-recursive Backtrack)
Mengliao Software Studio – Bosun Network Co., Ltd.
2012.03.29

算法五:排序复制代码 代码如下:

Full Permutation – Mengliao Software

Full Permutation
Mengliao Software Studio – Bosun Network Co., Ltd.
2012.03.30

算法六:求模复制代码 代码如下:

Full Permutation – Mengliao Software

Full Permutation
Mengliao Software Studio – Bosun Network Co., Ltd.
2012.03.29

上面的六种算法有些是对位置进行排列,例如回溯、排序等,因为这样可以适应各种类型的元素,而非要求待排列元素一定是数字或字母等。

发表评论

电子邮件地址不会被公开。 必填项已用*标注