#include<bits/stdc++.h>
using namespace std;
const int maxn=11;
int P[maxn];
int flag[maxn]={false};
int length;
void generate(int index,int arr[])
{
if(index==length)
{
//print(P);
for(int i=0;i<length;i++) cout<<P[i]<<" ";
cout<<endl;
return;
}
for(int i=0;i<length;i++)
{
if(flag[i]==false)
{
P[index]=arr[i];
flag[i]=true;
generate(index+1,arr);
flag[i]=false;
}
}
}
int main()
{
int a[]={1,2,3};
length=3;
generate(0,a);
return 0;
}
本文详细介绍了一种使用C++实现的全排列算法,通过递归方式生成数组的所有可能排列,展示了如何避免重复元素并打印结果。代码示例清晰,便于理解和应用。
6469

被折叠的 条评论
为什么被折叠?



