c 언어 에서 전형 적 인 배열 조합 알고리즘

c 언어 에서 의 전체 배열 알고리즘 과 조합 수 알고리즘 은 실제 문제 에서 매우 광범 위 하 게 응용 되 지만 알고리즘 은 매우 많 습 니 다.저 는 개인 적 으로 방법 을 너무 많이 기억 할 필요 가 없다 고 생각 합 니 다.한 가지 만 기억 하면 되 고 한 가지 신선 한 방법 도 다 먹 을 수 있다 고 생각 합 니 다.
전체 정렬:

#include<stdio.h>

void swap(int *p1,int *p2)

{

int t=*p1;

*p1=*p2;

*p2=t;

}

void permutation(int a[],int index,int size)

{

if(index==size)

{

for(int i=0;i<size;i++)

printf("%d ",a[i]);

printf("
"); } else { for(int j=index;j<size;j++) { swap(&a[j],&a[index]); permutation(a,index+1,size);// swap(&a[j],&a[index]); } } } int main() { int n; scanf("%d",&n); int a[n]; for(int i=0;i<n;i++) a[i]=i+1; permutation(a,0,n); return 0; }
 
조합:

#include<stdio.h>

void combine(int n,int m,int a[],int b[],const int M)

{

for(int j=n;j>=m;j--)

{

b[m-1]=j-1;

if(m>1)combine(j-1,m-1,a,b,M);//       

else

{

for(int i=M-1;i>=0;i--)printf("%d ",a[b[i]]);

printf("
"); } } } int main() { int n,m; scanf("%d%d",&n,&m); int a[n];int b[m]; for(int i=0;i<n;i++) a[i]=i+1; const int M=m; combine(n,m,a,b,M); }

이상 의 이 간단 한 c 언어 에서 전형 적 인 배열 조합 알고리즘 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 여러분 들 이 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기