简单的全排列算法实现

问题描述
实现一个简单的全排列算法,以整形数组{1,2,3,4,5}为例,假设元素无重复。
问题分析
如果用多层循环来实现,那么……有多少个元素将需要有多少层循环,这样作为实现一个算法的角度来看显然是不可取的。
以 a[] = {1,2,3,4,5}为例,它的全排列是
折叠代码块
复制代码
1 | 1 {2,3,4,5}的全排列 |
由子数组的全排列得到母数组的全排列结果,可以考虑用递归实现,具体可以设计为将 a 依次变换为
折叠代码块
复制代码
1 | 12345 |
然后分别求它们后四个元素的全排列,依此类推。
简单的 C++ 实现
折叠代码块CPP
复制代码
1 |
|
参考:http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1191914.html
- 本文标题:简单的全排列算法实现
- 创建时间:2021-03-28 00:00:00
- 本文链接:https://netlify.076666.xyz/posts/b513
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
复制版权信息