組合算法的遞歸實現

<!-- lang: cpp -->
在此輸入代碼
    int n=0;       //組合數目
    void swapi(int *a,int *b){  //交換函數
           int m=0;
           m=*a;
           *a=*b;
           *b=m;
  }

<!-- lang: cpp -->
void perm(int list[],int k,int m){
   int i=0;
  if(k>m){
  for(;i<=m;i++){
	printf("%d",list[i]);
}
printf("\n");
n++;
   }else{
  for(i=k;i<=m;i++){
      swapi(&list[k],&list[i]);
  perm(list,k+1,m);
  swapi(&list[k],&list[i]);
  }

       }
      }
相關文章
相關標籤/搜索