티스토리 뷰

CS

Heap

angieveloper 2022. 5. 2. 14:01

Heap

개념

  • 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조
  • 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조
  • 우선순위 큐를 구현하기 위하여 만들어진 자료구조
    • 우선순위 큐
      • 우선순위의 개념을 큐에 도입한 자료구조.
      • 데이터들이 우선순위를 가지고 있고 우선순위가 높은 데이터가 먼저 나간다.
      • 이용사례
        • 시뮬레이션 시스템
        • 네트워크 트래픽 제어
        • 운영 체제에서의 작업 스케쥴링
        • 수치 해석적인 계산
  • 반정렬 상태(느슨한 정렬 상태) 를 유지한다.
    큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다는 정도 - 간단히 말하면 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진 트리를 말한다.
  • 힙 트리에서는 중복된 값을 허용한다. (이진 탐색 트리에서는 중복된 값을 허용하지 않는다.)

시간 복잡도

  • 삽입 : O(logN)
  • 삭제 : O(logN)

힙의 종류

  • 최대 힙
    • 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리
    • key(부모 노드) >= key(자식 노드)
  • 최소 힙
    • 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 완전 이진 트리
    • key(부모 노드) <= key(자식 노드)

'CS' 카테고리의 다른 글

Hash  (0) 2022.05.02
이진검색 트리 (Binary Search Tree)  (0) 2022.05.02
Tree  (0) 2022.05.02
Stack vs Queue  (0) 2022.05.02
Array vs Linked List  (0) 2022.05.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함