이미 정렬 되어있다는 가정하에 시작해야 하며
정렬되어 있지 않다면 먼저 정렬해야 한다.
예제 배열 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는 내림차순 정렬일 때
합병해보기
'JAVA > 알고리즘 예제' 카테고리의 다른 글
[JAVA] 소인수 분해(Integer Factorization) (1) | 2016.09.06 |
---|---|
[JAVA] 대각선 채우기(diagonal) (1) | 2016.09.05 |
[JAVA] 90도 회전 (Rotate) (1) | 2016.09.02 |
[JAVA] 이분 검색(Binary Search) (1) | 2016.09.02 |
[JAVA] 삽입 정렬(Insertion Sort) (1) | 2016.09.01 |