우기의 알 블로그 저자 한승욱이라고 합니다.
스스로 알을 깨고 나오는 새처럼
언젠가 알을 깨고 온전한 나 자신이 되었을 때, 그때를 기다리며 제 속에서 솟아 나오는 것을 글로써 표현하고자 합니다.
'개발 기술블로그'를 위주로 저 한승욱의 다양한 관심사, 생각, 철학 등을 포스팅합니다.
[1,2,3,5]# 정렬된 배열 A[4,6,7,8]# 정렬된 배열 B[]# 두 집합을 합칠 빈 배열 C
↓
1단계 :[1,2,3,5]
↓
[4,6,7,8]1과 4를 비교합니다!
1<4 이므로 1을 C 에 넣습니다.
C:[1]
↓
2단계 :[1,2,3,5]
↓
[4,6,7,8]2와 4를 비교합니다!
2<4 이므로 2를 C 에 넣습니다.
C:[1,2]
↓
3단계 :[1,2,3,5]
↓
[4,6,7,8]3과 4를 비교합니다!
3<4 이므로 3을 C 에 넣습니다.
C:[1,2,3]
↓
3단계 :[1,2,3,5]
↓
[4,6,7,8]5와 4를 비교합니다!
5>4 이므로 4을 C 에 넣습니다.
C:[1,2,3,4]
↓
3단계 :[1,2,3,5]
↓
[4,6,7,8]5와 6을 비교합니다!
5<6 이므로 5을 C 에 넣습니다.
C:[1,2,3,4,5]
엇, 이렇게 되면 A 의 모든 원소는 끝났습니다!
그러면 B에서 안 들어간 원소인
[6,7,8] 은 어떡할까요?
하나씩 C 에 추가해주면 됩니다.
C:[1,2,3,4,5,6,7,8] 이렇게요!
# 출처: 스파르타코딩클럽
분할 정복(Divide and Conquer)
- 문제를 작은 2개의 문제로 분리하고 각각 해결한 다음에 결과를 모아서 원래의 문제를 해결하는 전략
[5, 3, 2, 1, 6, 8, 7, 4] 반으로 쪼갬
[5, 3, 2, 1] [6, 8, 7, 4] 또 반으로 쪼갬
[5, 3] [2, 1] [6, 8] [7, 4] 또 반으로 쪼갬
[5] [3] [2] [1] [6] [8] [7] [4]
이 배열들을 두개씩 병합
[5] [3] > [3, 5]
[2] [1] > [1, 2]
[6] [8] > [6, 8]
[7] [4] > [4, 7]
그러면 다시 각 배열별로 병합
[3, 5], [1, 2] > [1, 2, 3, 5]
.......
[1, 2, 3, 4, 5, 6, 7, 8]
알고리즘 3주차 - 정렬(병합 정렬)
병합 정렬
병합
병합정렬
'기술개발 > Algorithm' 카테고리의 다른 글