데브허브 | DEVHUB | 자료구조 - 합병정렬
- 합병 정렬은 배열을 재귀적으로 분할하여 최소 단위로 만든 후, 정렬하면서 다시 병합하는 '분할 정복' 패러다임을 따르는 효율적인 정렬 알고리즘입니다. 🧩
- O(n log n)의 안정적인 시간 복잡도를 가지며, 데이터의 초기 정렬 상태와 무관하게 일관된 고성능을 제공합니다. 🚀
- 이미 정렬된 두 부분 배열을 병합할 때, 각 배열에서 가장 작은 요소를 순차적으로 선택하여 합치는 방식으로 매우 빠르게 정렬이 이루어지는 것이 합병 정렬 속도의 핵심입니다. 🤝
- 정렬 과정에서 임시 배열(temp)을 사용하기 때문에 O(n)의 추가적인 공간 복잡도를 필요로 하며, 이는 합병 정렬의 주요 단점 중 하나입니다. 🧠
- 동일한 값을 가진 원소들의 상대적인 순서를 보존하는 '안정 정렬'의 특징을 가지므로, 특정 데이터 정렬 시 기존 순서 유지가 중요한 경우에 유리합니다. 🔗
mergeSort 함수는 배열을 재귀적으로 분할하는 역할을, merge 함수는 분할된 정렬된 부분 배열들을 실제 병합하고 정렬하는 핵심 로직을 담당합니다. 🏗️
- 대규모 데이터를 안정적으로 정렬해야 하거나 외부 저장 장치와 연동하여 작업할 때 특히 강력한 성능을 발휘합니다. 📈