우선순위 큐는 우선 순위의 개념을 큐에 도입한 자료구조이다.
응용되는 사례는 다음과 같다.
우선순위 큐는 여러 방법으로 구현이 가능한데, 가장 효율적인 구조는 heap이다.
특징으로는 느슨한 정렬 상태를 유지한다.
추가로 중복된 값을 허용한다.
최대 히프(max heap)
부모노드 >= 자식노드
최소 히프(min heap)
부모노드 <= 자식노드
히프는 완전 이진 트리이기 때문에 각각의 노드의 차례대로 번호를 붙일 수 있다. 따라서 히프를 저장하는 표준적인 자료구조는 배열이다.
삽입, 삭제의 시간 복잡도 : O(log n)
히프 정렬은 전체 자료를 정렬하는 것이 아니라 가장 큰 값 몇 개만 정렬 할 때 가장 유용하다.
최소 히프를 이용하여 구현