递归--全排列

来源:互联网 发布:蒙特卡洛芭蕾舞团知乎 编辑:程序博客网 时间:2024/05/18 13:43
 
#include<stdio.h>

void permulate(int *inint *status, int *outint pos)
{
    
int i=0;
    
if (pos == 5{
        
for (i=0;i<5;i++{
            printf(
"%d "out[i]);
        }

        printf(
" ");
    }

    
for (i=0;i<5;i++{
        
if (!status[i]) {
            
out[pos]=in[i];
            status[i]
=1;
            permulate(
in, status, out, pos+1);
            status[i]
=0;
        }

    }

}



void main(void)
{
    
int in[5]={1,2,3,4,5};
    
int status[5]={0,0,0,0,0};
    
int out[5]={0,0,0,0,0};
    permulate(
in,status,out,0);
    
}