프로그래밍 알고리즘

[정올 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;
}
반응형

'프로그래밍 알고리즘' 카테고리의 다른 글

[정올 2194] 요플레공장  (1) 2023.01.07
[정올 2082] 힙정렬2 (Heap_Sort)  (0) 2023.01.07
[정올 1912] 미로 탐색  (0) 2023.01.06
[정올 1901] 소수 구하기  (0) 2023.01.06
[정올 1885] 접두사  (1) 2023.01.06