머지소트 코드
#include <iostream>
using namespace std;
int a[10] = { 5,4,3,2,1 ,457,5412,879456,45120,6523};
//합치기
void m_sort(int list[], int l, int m, int r)
{
int i, j, k;
i = l;
j = m + 1;
k = l;
int temp[11];
//왼쪽에서 정렬된 배열과 오른쪽에서 정렬된 배열을 합침
//둘중 하나가 끝까지 올때 까지 합침
while (i <= m && j <= r)
{
if (list[i] <= list[j])
temp[k++] = list[i++];
else
temp[k++] = list[j++];
}
//오른쪽 배열에 임시 배열로 추가할 수가 남았으면 오른쪽 배열을 임시 배열로 복사
if (i > m)
{
for (int x = j; x <= r; x++)
temp[k++] = list[x];
}
//왼쪽 배열에 임시 배열로 추가할 수가 남았으면 왼쪽 배열을 임시 배열로 복사
else
{
for (int x = i; x <= m; x++)
temp[k++] = list[x];
}
//본 배열으로 복귀
for (int x = l; x <= r; x++)
list[x] = temp[x];
}
void merge(int list[], int l, int r)
{
int mid;
if (l < r)
{
mid = (l + r) / 2;
merge(list, l, mid);
merge(list, mid + 1, r);
m_sort(list, l, mid, r);
}
}
int main()
{
merge(a,0,9);
for (int i = 0; i < 10; i++)
{
cout << a[i] << " ";
}
return 0;
}
Author And Source
이 문제에 관하여(머지소트 코드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lsvk9921/머지소트-코드저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)