[알고리즘] Heap Sort(힙 정렬)

김성록·2023년 2월 7일

알고리즘

목록 보기
18/18

Heap Sort에 대해 설명해보세요.


Heap Sort의 작동 방식

  • 자료구조 힙(Heap)을 기반으로 정렬하는 방식으로, 배열의 요소들을 최대 힙이나 최소 힙으로 구성하여 루트 값을 마지막 요소와 바꾼 후, 마지막 요소를 삭제하고 다시 최대 힙이나 최소 힙으로 구성하는 과정을 반복하여 힙의 사이즈가 1이 될 때까지 진행한다.


Heap Sort의 특징

  • 시간 복잡도
    : 요소의 개수가 N이고, 힙을 재구성하는 과정이 logN만큼 걸리므로 O(NlogN)의 시간 복잡도를 가진다.

  • 공간 복잡도
    : 추가 메모리 사용 없이 O(N)의 공간 복잡도를 가진다.

  • 장점

    • 효율성이 좋다.
    • 병합 정렬과 다르게 추가 메모리가 필요 없다.
  • 단점

    • 떨어져 있는 데이터 교환이 발생하므로 불안정하다.

결론

Heap Sort는 힙 자료구조를 활용한 정렬 방식으로, 배열을 최대 힙이나 최소 힙의 형태로 구성하여 루트 값을 빼고 다시 재구성하는 과정을 반복하며 정렬하는 방법입니다. 모든 경우에 O(NlogN)이라는 빠른 시간 복잡도를 가지고 있고 추가 메모리 사용이 없다는 장점이 있습니다. 하지만 퀵 정렬이나 합병 정렬에 비해 성능이 좋지 않습니다. 따라서 가장 크거나 작은 값 몇개만 필요할 때 유용한 정렬 방법입니다.

profile
예비 개발자

0개의 댓글