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

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 位进行全排列,缺点是时间复杂度高。

猜你喜欢

转载自blog.csdn.net/m0_37925202/article/details/79777477
今日推荐