본문 바로가기
알고리즘/Java 알고리즘 설명

[Java] 자료구조 - 힙

by JayAlex07 2023. 6. 18.

[Java] 자료구조 - 힙

 

힙은 최소힙이 있고, 최대힙이 있다

  • 최소힙은 부모 노드가 항상 자식 노드보다 작은 숫자가 들어간다
    • 즉 최소힙에서는 제일 앞에 있는 숫자, 또는 루트 노드가 제일 작은 숫자로 이루어져 있다
  • 최대힙은 부모 노드가 항상 자식 노드보다 크기가 크다
    • 즉 최대힙에서는 제일 앞에 있는 숫자, 또는 루트 노드가 제일 큰 숫자로 이루어져 있다

 

힙은 이진 트리로 만들어져 있다

 

n의 자식 노드를 구할 때에는 (인덱스가 0으로 시작할 때) / 인덱스가 1로 시작할 때에는

  • 왼쪽 노드는 2n + 1 | 2n
  • 오른쪽 노드는 2n + 2 | 2n + 1

 

부모 노드를 구할 때에는 (인덱스가 0으로 시작할 때) / 인덱스가 1로 시작할 때

  • (n - 1) / 2 | n / 2

img

 

 

값을 추가하기 (MaxHeap)

img

 

 

제일 큰 값을 빼기 (MaxHeap)

img

'알고리즘 > Java 알고리즘 설명' 카테고리의 다른 글

[Java] 자료구조 - 그래프  (0) 2023.06.26
[Java] 자료구조 - 트리, 이진 트리  (0) 2023.06.22
[Java] 연결리스트  (0) 2023.06.16
[Java] 해시 테이블  (0) 2023.06.15
[Java] Array  (0) 2023.06.14