Post

정렬 알고리즘

정렬 알고리즘

정렬 알고리즘

한줄 정의 데이터를 특정 순서로 나열하는 알고리즘. 시간/공간 복잡도와 안정성(Stability)에 따라 상황에 맞는 알고리즘을 선택한다.

핵심 이해

비교 기반 정렬의 하한은 O(n log n)이다. 버블/선택/삽입 정렬은 O(n²)으로 소규모 데이터에 적합하고, 병합/퀵/힙 정렬은 O(n log n)으로 대규모에 적합하다. Python의 sorted()list.sort()는 Timsort(병합+삽입 정렬 하이브리드)를 사용한다.

퀵 정렬은 평균 O(n log n)이지만 최악(이미 정렬된 배열) O(n²)이 가능하다. 병합 정렬은 항상 O(n log n)이며 안정 정렬이지만 O(n) 추가 공간이 필요하다. 힙 정렬은 O(n log n)에 제자리 정렬이지만 캐시 지역성이 낮다.

복잡도 비교

정렬 알고리즘 다이어그램 1

관련 개념

  • 시간복잡도 - 정렬 알고리즘 복잡도 분석
  • 힙 - 힙 정렬의 기반 자료구조
  • 재귀 - 병합 정렬, 퀵 정렬의 분할 정복
This post is licensed under CC BY 4.0 by the author.