
[알고리즘 정리] Merge Sort ( 병합정렬 ) - O(NlogN), 추가메모리, Stable
·
Algorithm/알고리즘 정리
🤔Merge Sort(병합정렬) 이란 ? 병합 정렬은 분할 정복 (Divide and Conquer) 방식을 이용해서 하나의 리스트를 두 개의 리스트로 분할한 다음 각각의 분할된 리스트를 정렬한 후에 합해서 정렬된 하나의 리스트로 만드는 정렬 알고리즘 💡 과정 주어진 리스트를 절반으로 분할하여 부분리스트로 나눈다. (Divide : 분할) → mergeSort() 메소드 해당 부분리스트의 길이가 1이 아니라면 1번 과정을 되풀이한다. → if (start == end) return; 인접한 부분리스트끼리 정렬하여 합친다. (Conqure : 정복) → merge() 메소드 ⚡ 특징 시간 복잡도 : 최선, 평균, 최악 모두 $O(NlogN)$ 데이터를 “비교”하면서 찾기 때문에 비교정렬 추가 메모리 필요 ..