话不多说,上代码:
1、输出序列{1,2,3,4}字典序的全排列。
int main()
{
int a[4]={1,2,3,4};
sort(a,a+4);
do
{
for(int i=0;i<4;i++)
cout<<a[i]<<" ";
cout<<endl;
}while(next_permutation(a,a+4));
}
截图:
2、输入任意一个字符串,输出其字典序的全排列
int main()
{
string str;
cin>>str;
sort(str.begin(),str.end());
do{
cout<<str<<endl;
}while(next_permutation(str.begin(),str.end()));
}
截图:
3.求{1,2,3,......m}的第那个排列,
如6个数的结合{1,2,3,4,5,6},要求出第n=2345个排列;
int main()
{
int a[6]={1,2,3,4,5,6};
sort(a,a+6);
int n=0;
do{
if(n==2345)
{
for(int i=0;i<6;i++)
cout<<a[i];
cout<<endl;
break;
}
n++;
}while(next_permutation(a,a+6));
}