안녕하세요, 츄르 사려고 코딩하는 집사 코집사입니다.
전에 병합정렬(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++];
}
}
'IT > 자료구조' 카테고리의 다른 글
[자료구조/정렬알고리즘] 힙 정렬(Heap Sort) C언어 (0) | 2019.04.15 |
---|---|
자료구조 알고리즘 퀵정렬(Quick Sort, 퀵정렬) C언어 구현 (0) | 2019.03.10 |
자료구조 알고리즘 힙정렬(Heap Sort, 힙정렬) 정리 (0) | 2019.03.09 |
자료구조(정렬 알고리즘) - 합병, 병합 정렬(Merge Sort) (0) | 2019.02.19 |
자료구조(정렬 알고리즘) - 삽입 정렬(Insertion Sort) C언어 소스 코드 (0) | 2019.02.15 |
자료구조(정렬 알고리즘) - 선택 정렬(Selection Sort) C언어 코드 (0) | 2019.02.14 |
자료구조(정렬 알고리즘) - 칵테일 정렬 C 코드 (0) | 2019.02.12 |
자료구조(정렬 알고리즘) - 칵테일 정렬(Cocktail shaker Sort) (0) | 2019.02.08 |
최근댓글