设为首页 加入收藏

TOP

【模板】全排列(运用STL的next_permutation)
2018-10-22 00:11:10 】 浏览:46
Tags:模板 排列 运用 STL next_permutation

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

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

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

int cmp(int a,int b){return a<b;}  
int main()  
{  
    int a[100],t,n,i;  
    cin>>t;
    while(t--)  
    {  
        cin>>n; 
        for(i=0;i<n;i++)    
            scanf("%d",&a[i]);   

        sort(a,a+n,cmp);               //一定要先将数组元素从小到大排序
        for(i=0;i<n;i++)               //先把第一个(完全从小到大)的排序输出
        {  
            if(i!=n-1)printf("%d ",a[i]);  
            else printf("%d\n",a[i]);  
        }  
        while(next_permutation(a,a+n)) //每一次都会重新排列一次,直到排列为完全从大到小
        {  
            for(i=0;i<n;i++)  
             {  
                if(i!=n-1)printf("%d ",a[i]);  
                else printf("%d\n",a[i]);  
            }  
        }     
        cout<<endl;
    }  
}  

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇BZOJ4868: [Shoi2017]期末考试 下一篇PTA练习题之7-1 出租车计价(15 ..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目