算法竞赛模板 全排列(运用STL的next_permutation)

(1) 先将要排列的数据存入数组中;

(2) 再将数组元素从小到大排序;

(3) 每次调用next_permutation函数,都只进行1次排列,若数组元素完全变为递减的排列,则该函数返回0;

int main()  
{  
    int a[105],t,n,i;  
    cin>>t;
    while(t--)  
    {  
        cin>>n;
        for(i=0;i<n;i++)cin>>a[i];
        sort(a,a+n,less<int>());
        do
        {
            for(i=0;i<n;i++)
            {
                if(i!=n-1)cout<<a[i]<<" ";
                else cout<<a[i]<<endl;
            }
        }while(next_permutation(a,a+n));
    }  
}  

 

 

posted @ 2018-03-20 20:18  真想不出名字了  阅读(237)  评论(0编辑  收藏  举报