您的位置:首页 > 编程语言

分析Perm()函数功能、代码、时间复杂度

2018-04-01 13:34 330 查看
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
);
Perm(array, size, N + 1);
swap(array[i], array
);
}
}
}
int main()
{
int arr[5] = { 1, 2, 3, 4, 5 };
Perm(arr, 5, 3);
return 0;
}


输出:



时间复杂度:

时间复杂度为 : O(n!)

Perm函数是一个递归函数,它的作用是对数组的后size-N 位进行全排列,缺点是时间复杂度高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: