Merge sort

2025. 5. 7. 10:35·📚 STUDY/📈 알고리즘

Divide-and-conquer를 기반으로 하는 대표적인 정렬 알고리즘.

 

주어진 배열 n을 2/n으로 계속 분할해,

각 부분 배열이 하나의 원소를 가질 때까지 나눈 다음,

이를 다시 정렬하면서 병합하는 방식으로 전체 배열을 정렬한다.

 

즉, 크게 3개의 과정으로 나뉜다.

1. Divide : 배열을 가운데 기준 두 부분으로 나누어준다. 🌐 O(1) (중간 인덱스만 알면 되니까)

2. Conquer : 나눠진 배열 각각에 대해 재귀적으로 mergesort를 적용해 정렬한다. 2번의 정렬 작업이 이뤄진다.

3. Combine : 정렬된 두 배열을 하나의 정렬된 배열로 병합한다. 🌐 O(n) (모든 원소를 한 번씩 비교해 합치니까)

 

이를 점화식으로 표현하면 아래와 같다.

 

✅ 분할이 log n 단계에 걸쳐 일어나고, 각 단계에서 O(n) 시간이 소요되어 항상 O(nlogn)의 시간 복잡도를 가진다.

 

저작자표시

'📚 STUDY > 📈 알고리즘' 카테고리의 다른 글

DFS (깊이 우선 탐색)  (0) 2025.05.07
Quick sort  (0) 2025.05.07
Divide-and-Conquer Algorithm  (0) 2025.04.15
Algorithm & Time Complexity  (0) 2025.04.15
[C++] ios::sync_with_stdio(0); cin.tie(0);  (1) 2025.03.05
'📚 STUDY/📈 알고리즘' 카테고리의 다른 글
  • DFS (깊이 우선 탐색)
  • Quick sort
  • Divide-and-Conquer Algorithm
  • Algorithm & Time Complexity
엄지잉
엄지잉
공부하는거 올림
  • 엄지잉
    엄지잉의 이것저것
    엄지잉
  • 전체
    오늘
    어제
    • 분류 전체보기 (89) N
      • 🏫 학교 (2)
        • 👩‍🏫 교직 (1)
        • 🏢 USG (1)
      • 📑 공부 (17)
        • 📷 SLAM (7)
        • 💡 연구 (8)
        • 🌐 BOJ (2)
      • 📚 STUDY (42) N
        • 🔆 UNITY (1)
        • 📈 알고리즘 (9) N
        • 🔥 C (32)
      • 🏆 자격증 (23)
        • ⚡ 정처기 (17)
        • 🔠 TOEIC (6)
      • 🎈 활동 (4)
        • 🎁 CJ 리모트 인턴십 (2)
        • 😶 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    mocopi
    C
    정처기
    주석
    BOJ
    C++
    Unity
    식별자
    Body Tracking
    Quick Sort
    필기
    2021년
    모션캡처
    정보처리기사
    프언 활용
    SW 설계
    정보시스템 구축관리
    c기초
    토익
    Remote Internship
    2022년
    C언어
    Slam
    알고리즘
    실기
    DB 구축
    Azure Kinect
    SW 개발
    azurekinect
    RC
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
엄지잉
Merge sort
상단으로

티스토리툴바