본문 바로가기

JAVA/알고리즘 예제

[JAVA] 합병(Merge)

이미 정렬 되어있다는 가정하에 시작해야 하며

정렬되어 있지 않다면 먼저 정렬해야 한다.

예제 배열 A = {1,3,5,7,9,11,13,15,17,19}

예제 배열 B = {2,4,6,8,10,12,14,16,18,20}


을 Merge 배열에 순서대로 합병하라.


실행 결과


package jungbo;


public class T03Merge {

public static void main(String[] args) {

int A[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};

int B[] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};

int Merge[] = new int[20];

int J,K,L;

J=0; K=0; L=0;

for(;;){

if(A[J]<B[K]){

Merge[L] = A[J];

J++;

L++;

if(J<A.length){continue;

}else{Merge[L]=B[K];}

}else if(A[J]>B[K]){

Merge[L] = B[K];

K++;

L++;

if(J<B.length){continue;

}else{Merge[L]=A[J];}

}else{

Merge[L] = B[J];

J++;

K++;

L++;

}

break;

}

System.out.print("Merge : [");

for(L=0;L<Merge.length;L++){

System.out.print(Merge[L]);

if(L!=Merge.length-1)System.out.print(",");

}System.out.print("]");

}//main end

}//class end




더 생각해보기


A는 오름차순 정렬, B는 내림차순 정렬일 때

합병해보기