//输出全排列,时间复杂度近似为O(N!)
void Prem(int* arr, int size, int N)
{
int idx = 0;
if(size == N)
{
for(idx = 0; idx < size; idx++)
{
cout<<arr[idx]<<" ";
}
cout<<endl;
}
else
{
for(idx = N; idx < size; idx++)
{
std::swap(arr[idx], arr[N]);
Prem(arr,size,N+1);//循环中嵌套递归
std::swap(arr[idx], arr[N]);
}
}
}
运行结果