全排列问题
递归写法:
// A code block
var foo = 'bar';
// An highlighted block
#include<cstdio>
void ArrayArrange(int a[],int begin ,int end)
{
if(begin==end)
{//终止条件
for(int i=0;i<=end;++i)
{
printf("%d ",a[i]);
}
printf("\n");
}
else
{
for(int i=begin;i<=end;++i)
{
int c=a[i];
a[i]=a[begin];
a[begin]=c;
ArrayArrange(a,begin+1,end);
c=a[i];//回溯
a[i]=a[begin];
a[begin]=c;
}
}
}
int main()
{
int a[100];
for(int i=0;i<5;++i)
a[i]=i+1;
ArrayArrange(a,0,4);
return 0;
}