暴力法生成1~n的排列

来源:互联网 发布:网络用户的行为分析 编辑:程序博客网 时间:2024/05/22 17:20
#include<iostream>using namespace std;void print_permutation(int n,int* A,int cur){    int i,j;    if(cur==n) //结束条件,递归边界    {        for(i=0; i<n; i++) cout<<" "<<A[i];        cout<<endl;    }    else        for(i=1; i<=n; i++) //尝试在A[cur]中填各种整数i        {            int ok=1;            for(j=0; j<cur; j++)                if(A[j]==i) ok=0;//如果i已经在A[0]~A[cur-1]出现过,则不能再选            if(ok)            {                A[cur]=i;                print_permutation(n,A,cur+1);//递归调用            }        }}int main(){    int n;    int a[100];    while(cin>>n)    {        print_permutation(n,a,0);  //初始条件    }    return 0;}


0 0