码迷,mamicode.com
首页 > 其他好文 > 详细

枚举排列

时间:2016-01-23 00:53:33      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

 

 

无重复的全排列,0~n-1

技术分享
 1 void print_permutition(int n,int *a,int cur)
 2 {
 3     if(n==cur)
 4     {
 5         for(int i=0;i<n;i++)    scanf("%d",a[i]);
 6         printf("\n");
 7     }
 8     else
 9     {
10         for(int i=0;i<n;i++)
11         {
12             int ok=1;
13             for(int j=0;j<cur;j++)
14             {
15                 if(a[j]==i)
16                 {
17                     ok=0;
18                     break;
19                 }
20             }
21             if(ok)
22             {
23                 a[cur]=i;
24                 print_permutition(n,a,cur+1);
25             }
26         }
27     }
28 }
View Code

 

数组p中有可以重复的元素,生成排序。

 

技术分享
 1 void print_permutition(int *p,int n,int *a,int cur)//p为升序的数组,输出p的排序来。 
 2 {
 3     if(n==cur)
 4     {
 5         for(int i=0;i<n;i++)    printf("%d",a[i]);
 6         printf("\n");
 7     }
 8     else
 9     {
10         for(int i=0;i<n;i++)
11         {
12             if(!i||p[i]!=p[i-1])
13             {
14                 int c1=0,c2=0; 
15                 for(int j=0;j<cur;j++)
16                 {
17                     if(a[j]==p[i])
18                     c1++;
19                 }
20                 for(int j=0;j<n;j++)
21                 {
22                     if(p[i]==p[j])    c2++;
23                 }
24                 if(c2>c1)
25                 {
26                     a[cur]=p[i];
27                     print_permutition(p,n,a,cur+1);
28                 }
29             }
30         }
31     }
32 }
View Code

 

枚举排列

标签:

原文地址:http://www.cnblogs.com/WDKER/p/5152500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!