1. 程式人生 > >C++全排列函式

C++全排列函式

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;  

}  


結構體的還未掌握(未完待續)