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
엄지잉
엄지잉
공부하는거 올림
  • 엄지잉
    엄지잉의 이것저것
    엄지잉
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • 🏫 학교 (2)
        • 👩‍🏫 교직 (1)
        • 🏢 USG (1)
      • 🌱 탐구 (17)
        • 📷 SLAM (7)
        • 💡 연구 (8)
        • 🌐 BOJ (2)
      • 📚 STUDY (47)
        • 🔥 C (32)
        • 📈 알고리즘 (9)
        • 👀 컴퓨터비전 (5)
        • 🔆 UNITY (1)
      • 🏆 자격증 (23)
        • ⚡ 정처기 (17)
        • 🔠 TOEIC (6)
      • 🎈 활동 (4)
        • 🎁 CJ 리모트 인턴십 (2)
        • 😶 기타 (2)
  • 블로그 메뉴

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

    • Github
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바