[알고리즘]힙 정렬(Heap Sort)
·
CS 지식/[알고리즘]
완전 이진 트리란? 삽입할 때 왼쪽부터 차례대로 추가하는 이진 트리 힙 정렬 완전이진 트리를 이용한 정렬 방식 평균과 최악 모두 시간 복잡도는 O(nlog2n) 과정 최대 힙을 구성 현재 힙 루트는 가장 큰 값이 존재함. 루트의 값을 마지막 요소와 바꾼 후, 힙의 사이즈 하나 줄임 힙의 사이즈가 1보다 크면 위 과정 반복 루트를 마지막 노드로 대체 (11 → 4), 다시 최대 힙 구성 이와 같은 방식으로 최대 값을 하나씩 뽑아내면서 정렬하는 것이 힙 소트 public void heapSort(int[] array) { int n = array.length; // max heap 초기화 for (int i = n/2-1; i>=0; i--){ heapify(array, n, i); // 1 } // ext..