代码如下:
void Perm(int* arr,int size,int N)
{
if(size == N)
{
for(size_t i=0;i<size;++i)
cout<<arr[i];
cout<<endl;
}
else
{
for(size_t i=N;i<size;++i)
{
std::swap(arr[i],arr[N]);
Perm(arr,size,N+1);
std::swap(arr[i],arr[N]);
}
}
}
详细解释:
例如传入arr 数组为12345
(1)Perm(arr,5,3):表示arr数组的下标为3的开始全排列,即45全排列。
结果如下: