next_permutation。
在C++的标准函数库STL中,next_permutation()函数用于求数列的全排列。
头文件:#include<algorithm>
std::next_permutation (在C语言中使用)
#include<stdio.h>
#include<algorithm>
int main(){
int i;
int count = 0;
int a[3] = {1, 2, 4};
do{
for(i = 0; i < 3; i++){
printf("%d ", a[i]);
}
printf("\n");
count++;
}while(std::next_permutation(a, a+3));
printf("%d", count);
return 0;
}
输出:当数组 a 中的数字不是按从大到小的顺序排序时,改为a[3] = {3, 2, 4}
#include<stdio.h>
#include<algorithm>
int main(){
int i;
int count = 0;
int a[3] = {3, 2, 4};
do{
for(i = 0; i < 3; i++){
printf("%d ", a[i]);
}
printf("\n");
count++;
}while(std::next_permutation(a, a+3));
printf("%d", count);
return 0;
}
输出:
注:如果数组中的数据比较混乱时,可以用sort函数进行排序