zoukankan      html  css  js  c++  java
  • 枚举排列

    无重复的全排列,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("
    ");
     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("
    ");
     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
  • 相关阅读:
    twfont
    判断数组中某个元素的个数
    vue swiper中的大坑
    this指向问题
    vue.nextTick简单的用法
    类图解析
    设计模式
    设计模式
    Http Notes
    VS Notes
  • 原文地址:https://www.cnblogs.com/WDKER/p/5152500.html
Copyright © 2011-2022 走看看