天天看点

求全排列算法简单的实现

求全排列算法实现(一)递归实现

假如是一个数组,无重复元素的全排列,其简单的递归实现算法思想如下:

假如:allsort(a b c);分治思想化为a+allsort(b c); b+allsort(a c), c+allsort(a b);

递归一层后计算第二层时:如allsort(b c)时,化为b+allsort(c) 和 c+allsort(b);

此时问题就明显了,首先确定一个元素,求剩下的全排列,如此类推下去做一个递归;

c++实现了一个简单的代码如下:

<a></a>

全排列的递归实现似乎效率有些低。不过这个思路比较清晰。易理解,首先看会了递归的实现,再进一步的研究如何实现非递归求全排列的方法。

本文转自NewPanderKing51CTO博客,原文链接:http://www.cnblogs.com/newpanderking/archive/2012/05/10/2494549.html ,如需转载请自行联系原作者

继续阅读