Perm()函数功能:
Perm函数的功能是将传递过来的数组的后size - N 位进行全排列,将排列的每一组数都输出。
代码实现:
#include<iostream>
#include<String>
using namespace std;
void Perm(int* array, int size, int N) //全排列
{
if (N == size) {
for (int i = 0; i < size; ++i)
cout << array[i];
cout << " ";
}
else
{
for (int i = N; i < size; ++i)
{
swap(array[i], array[N]);
Perm(array, size, N + 1);
swap(array[i], array[N]);
}
}
}
int main()
{
int arr[5] = { 1, 2, 3, 4, 5 };
Perm(arr, 5, 3);
return 0;
}
输出:
时间复杂度:
时间复杂度为 : O(n!)
Perm函数是一个递归函数,它的作用是对数组的后size-N 位进行全排列,缺点是时间复杂度高。