C++构造 下一个排列 的函数

之前构造排列都是自己写…真是麻烦啊..

结果今天围观刘汝佳神犇的白书发现了一个好用的函数:

next_permutation();

可以用于可重, 或者不可重集, 寻找下一个排列.

时间复杂度尚不明.

//适用于不可重和可重集的排列.

# include <iostream>
# include <algorithm>
using namespace std;

int a[1003], n;

int main()
{
    cin >> n;
    for (int i = 0; i < n; ++i )
        cin >> a[i];
    sort(a, a+n);
    do
    {
        for(int i = 0; i < n; ++i)
            cout << a[i] << ' ';
        cout << endl;

    } while( next_permutation(a, a+n) );
    return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>