【递归】N位全排列

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int n;
 5 int a[10];
 6 
 7 void search(int m)
 8 {
 9 
10     if(m==n){
11         printfresult();
12     }else
13     {
14         int i;
15         for(i=m;i<n;i++)
16         {
17             swap(m,i);
18             search(m+1);
19             swap(m,i);
20         }
21     }
22 }
23 
24 void swap(int s,int b)
25 {
26     int temp ;
27     temp = a[s];
28     a[s] = a[b];
29     a[b]= temp;
30 }
31 
32 void printfresult()
33 {
34     int i;
35     for(i=0;i<n;i++)
36         printf("%d ",a[i]);
37         printf("
");
38 }
39 
40 int main()
41 {
42     int i;
43     scanf("%d",&n);
44     for(i=0;i<n;i++)
45         a[i]=i+1;
46     search(0);
47     return 0;
48 }
原文地址:https://www.cnblogs.com/zhouyee/p/4395893.html