반응형
#include <iostream>
using namespace std;
int main()
{
int n, m;
cin >> n>> m;
int*a, *b;
a = new int[n];
b = new int[m];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
for (int j = 0; j < m; j++)
{
cin >> b[j];
}
int *mg=new int[n+m];
int k = 0, i =0, j =0;
while (i <= n-1&&j <= m-1)
{
if (a[i] <= b[j])
{
mg[k++] = a[i++];
}
else
{
mg[k++] = b[j++];
}
}
while (i <= n-1)
{
mg[k++] = a[i++];
}
while (j <= m-1)
{
mg[k++] = b[j++];
}
for (int k = 0; k < n + m; k++)
{
cout << mg[k] << " ";
}
cout << endl;
delete[] mg;
delete[] a;
delete[] b;
}
병합정렬(MergeSort)문제입니다.
두 배열의 구성요소 값을 비교하여 mg라는 통합병렬 내에 정렬된 상태로 입력시켜주면 되겠습니다.
이때 각 배열의 구성요소 값을 i,j라는 변수이용하여 독립적으로 배열값을 이동시킬수있게합니다.
반응형
'개발 > 알고리즘 & 자료구조' 카테고리의 다른 글
백준(BOJ) 11724번 연결요소의 개수 (0) | 2021.08.02 |
---|---|
백준(BOJ) 1406번 에디터 (0) | 2021.08.02 |
비트마스크(Bitmask) (0) | 2021.08.02 |
O(n+k) 정렬 - 카운팅 정렬(Counting Sort) (0) | 2021.08.02 |
O(n^2) 정렬 - 선택정렬(SelectionSort) (0) | 2021.08.02 |