C언어/문제풀다 하나씩

간단 합병정렬

mcdn 2020. 5. 1. 13:02
반응형

#include <iostream>
using namespace std;
int arrleft[4] = { 3,5,9,10 };
int arrright[4] = { 2,6,9,11 };
int result[8];
int lft = 0;
int rht = 0;
int head = 0;


int main() {
	for (int i = 0; i < 4;i++) {
		cin >> arrleft[i];
	}
	for (int i = 0; i < 4;i++) {
		cin >> arrright[i];
	}
	while (head != 8) {
		if (rht == 4){
			for (int i = lft; i < 4;i++) {
				result[head] = arrleft[i];
				head++;
			}
		}
		else if (lft == 4) {
			for (int i = rht; i < 4;i++) {
				result[head] = arrright[i];
				head++;
			}
		}
		else if (arrleft[lft] > arrright[rht]) {
			result[head] = arrright[rht];
			rht++;
			head++;
		}
		else if (arrright[rht] >= arrleft[lft]) {
			result[head] = arrleft[lft];
			lft++;
			head++;
		}

		
	}
	for (int i = 0; i < 8;i++) {
		cout << result[i] << " ";
	}
	return 0;
}

입력 예제

3 5 9 10 2 6 9 11

출력 결과

2 3 5 6 9 9 10 11

 

 

이거 right left 썼다가 에러났었음 E0266

 

반응형