#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[10000];
int n;
cin>>n;
int i,j,k;
for(i=1; i<=n; i++)
a[i]=i;
for(i=1; i<=n; i++)
printf("%5d",i);
printf("\n");
while(next_permutation(a+1,a+n+1))
{
for(int i=1; i<=n; i++)
printf("%5d",a[i]);
cout<<endl;
}
return 0;
}
这是一个求一个排序的下一个排列的函数,可以遍历全排列,要包含头文件
使用方法:next_permutation(数组头地址,数组尾地址);若下一个排列存在,则返回真,如果不存在则返回假
若求上一个排列,则用prev_permutation