一个使用递归算法实现全排列
先说一下算法思想:
实现代码如下:
#include <iostream>
using namespace std;
int a[4]={0,1,2,3};
int n = 3;
void qpl(int i)
{
if(i==n) //当i==n时,后面没有任何数字,所以到了最后
{
for(int j=1; j<=n; j++)
cout<<a[j]<<" ";
cout<<endl;
return;
}
for(int k = i; k<=n; k++)//i位置后面的数字都可以和它交换
{
swap(a[i],a[k]);
qpl(i+1);
swap(a[i],a[k]); //恢复现场
}
}
int main()
{
qpl(1);
return 0;
}