C++全排列函式
阿新 • • 發佈:2019-01-04
next_permutation
用法:窮舉一個集合的所有全排列情況
舉例如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int num[3]={1,2,3};
do
{
printf("%d %d %d\n",num[0],num[1],num[2]);
}
while(next_permutation(num,num+3));
return 0;}
結果如下:
ps:next_permutation()在使用前需要對欲排列陣列按升序排序,否則只能找出該序列之後的全排列數。
對於字元陣列與整型我到現在還沒找到區別
#include<bits/stdc++.h>
using namespace std;
int main()
{
char num[9]={'a','b','c','d','e','f','g','h','i'};
do
{
printf("%c %c %c %c %c %c %c %c %c\n",num[0],num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8],num[9]);
}while(next_permutation(num,num+9));
return 0;
}