#include <iostream>
using namespace std;
/*利用引用,交换两个数据*/
void myswap(int &a, int &b)
{
int temp=a;
a=b;
b=temp;
}
/**
@a[] 是数组
@k 是递归到哪个下标
@length 是数组的长度
**/
void perm(int a[], int k, int length)
{
static int counter=0;
if(k>=length-1)
{
cout<<"["<<++counter<<"] : ";
for(int i=0;i<length;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}else
{
for(int i=k;i<length;i++)
{
myswap(a[i],a[k]);
perm(a,k+1,length);
myswap(a[i],a[k]);
}
}
}
int main()
{
int a[]={1,2,3,4};
perm(a,0,sizeof(a)/sizeof(a[0]));
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-200272.html