인프런 - 강의/1 - 지구에서 제일 쉽게 설명한 자료구조 알고리즘

5-2 Merge Sort 구현

개복치 개발자 2019. 9. 14. 12:00

저번 시간에 이론으로만 봤던, Merge Sort를 실제로 코드로 구현해보겠습니다.

 

저번 시간에 머지 소트를 잠깐 설명했는데, 좀 더 자세히 설명드리겠습니다.

 

이 머지 소트가 모든 것을 다 나누고나서 합치는것이 아니라, 나누는 중간에 합칩니다..

 

이게 무슨 뜻이냐 하면.. 아래의 그림으로 순서를 보겠습니다.

 

 

 

 

이런 순서대로 sort가 동작합니다.

 

자, 그렇다면 얘를 따라서 코딩을 해보겠습니다.

 

코드는 몇줄 되지도 않는데, 얘를 한번에 이해하기는 조금 힘듭니다.

 

일단 머지소트를 실행합니다.

 

list = [38, 27, 43, 3, 9, 82, 10]
mergeSort(list)

 

 

 

때문에 , 로그를 찍히는 것을 보시는게 가장 이해가 빠르실 듯 합니다.

 

아래와 같이 나오는 것을 보실 수 있으실 겁니다.

 

이 부분에 자세한 설명은 영상을 참조해주세요 :)

 

---

 

left :  [38, 27, 43]
left :  [38]
right :  [27, 43]
left :  [27]
right :  [43]
임시로 list 정렬 : [27, 43]
최종적으로 정렬된 list : [27, 43]

임시로 list 정렬 : [27, 38, 43]
최종적으로 정렬된 list : [27, 38, 43]

right :  [3, 9, 82, 10]
left :  [3, 9]
left :  [3]
right :  [9]
임시로 list 정렬 : [3, 9]
최종적으로 정렬된 list : [3, 9]

right :  [82, 10]
left :  [82]
right :  [10]
임시로 list 정렬 : [10, 10]
최종적으로 정렬된 list : [10, 82]

임시로 list 정렬 : [3, 9, 82, 10]
최종적으로 정렬된 list : [3, 9, 10, 82]

임시로 list 정렬 : [3, 9, 10, 27, 38, 43, 10]
최종적으로 정렬된 list : [3, 9, 10, 27, 38, 43, 82]