【TOJ 2621】全排列(STL的next_permutation)
程序员文章站
2022-04-16 10:18:23
关于元素全排列(STL的next_permutation函数运用) ......
描述
任意输入n个不重复的整数序列,输出序列的全排列。
输入
测试数据有多组,第一行是整数t(0<t<20),代表测试组数。每组测试数据有两行,第一行是整数的个数n(0<n<6),第二行是n个不重复的整数。
输出
按递增的顺序输出序列的全排列。每个测试数据后面输出一个空行。
样例输入
1
3
1 3 5
样例输出
1 3 5
1 5 3
3 1 5
3 5 1
5 1 3
5 3 1
#include<iostream> #include<algorithm> using namespace std; 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; } }
上一篇: Bootstrap视频教程