반응형



안녕하세요, 츄르 사려고 코딩하는 집사 코집사입니다.

전에 병합정렬(Merge Sort)에 대한 C언어 소스 코드를 올렸었는데, 일반적으로 구성하는 방법에 대해서 다시 글을 올립니다.




배열의 크기와 배열값들을 입력을 받아 정렬하는 소스코드입니다.






<소스 코드>

#include<stdio.h>

int A[10000];

int MergeSort(int A[], int p,int q);

int Merge(int A[], int p, int q, int r);

int main()

{

int number;

printf("배열 크기 입력 :");

scanf("%d",&number);

for(int i = 1; i<=number;i++)

{

printf("%d번째 배열값 입력 :",i);

scanf("%d",&A[i]);

}

MergeSort(A,1,number);

for(int j=1;j<=number;j++)

{

printf("%d",A[j]);

}

}

int MergeSort(int A[], int p, int r)

{

int q;

if(p<r)

{

q = (p + r) / 2;

MergeSort(A,p,q);

MergeSort(A,q+1,r);

Merge(A,p,q,r);

}

}

int Merge(int A[], int p, int q, int r)

{

int temp[10000];

int i = p;

int j = q+1;

int t = 1;

while(i<=q && j<=r)

{

if(A[i]<=A[j])

{

temp[t++] = A[i++];

}

else

{

temp[t++] = A[j++];

}

}

while(i<=q)

{

temp[t++] = A[i++];

}

while(j<=r)

{

temp[t++] = A[j++];

}

i = p;

t = 1;

while(i<=r)

{

A[i++] = temp[t++];

}

}

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기