(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)); } }