파이썬으로 정리하는 힙정렬
개념 데이터에서 최소값과 최대값을 빠르고 쉽게 찾기 위한 완전이진트리 형태의 자료구조 완전이진트리: 마지막 레벨을 제외한 모든 레벨이 채워지고 마지막 레벨만 좌 → 우 구조 모든 노드의 데이터는 부모노드는 자식 노드의 값보다 크거나 같다 힙 정렬 root노드를 맨 마지막 인덱스 노드와 swap 맨 마지막 인덱스 노드는 없는 노드 취급하고 root 노드에서 heapify 작업 다시 root노드를 맨 마지막 인덱스 노드와 swap (2번에서 작업한 노드 제외) 반복 힙 정렬과 힙의 시간복잡도 힙의 시간 복잡도 힙의 높이는 O(log(n)) → 왼쪽, 오른쪽 자식은 (root * 2), (root * 2 + 1)이기에 log(n)번씩 건너서 확인하기 때문이고 이것을 전체 길이 n번만큼 반복하기에 힙의 시간 복잡도는 O(nlog(n))...