프로그래밍 알고리즘
[정올 1972] 정렬(SORT)
꾸준한사람
2023. 1. 7. 14:35
반응형
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1245&sca=99&sfl=wr_hit&stx=1972
JUNGOL
www.jungol.co.kr
#include <stdio.h>
int ar[100010], ans[100010], N, C;
void mergesort(int* pArr, int s, int e)
{
if (s >= e) return;
int m = (s + e) / 2;
mergesort(pArr, s, m);
mergesort(pArr, m + 1, e);
int i = s, j = m + 1, k = s;
while (i <= m && j <= e) {
if (C)
if (pArr[i] >= pArr[j]) ans[k++] = pArr[i++];
else ans[k++] = pArr[j++];
else
if (pArr[i] <= pArr[j]) ans[k++] = pArr[i++];
else ans[k++] = pArr[j++];
}
while (i <= m) ans[k++] = pArr[i++];
while (j <= e) ans[k++] = pArr[j++];
for (i = s; i <= e; i++) pArr[i] = ans[i];
}
int main(void)
{
scanf("%d", &N);
scanf(" %d", &C);
for (int i = 0; i < N; i++) scanf(" %d", ar + i);
mergesort(ar, 0, N - 1);
for (int i = 0; i < N; i++) printf("%d\n", ans[i]);
return 0;
}
반응형