Guest User

Untitled

a guest
Dec 17th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. # binary Heap
  2. - 최대, 최소값 찾기에 효율적
  3. - complete binary tree : 마지막 레벨 제외하고 모두 채워짐
  4. - array 로 구현하면 트리에 비해 swap 이 효율적
  5. - 메모리 힙이랑 다르다
  6. - max heap, min heap
  7. - priority : parent >= child. 즉 루트노드가 최대 또는 최소값
  8. - 검색이 느리다
  9.  
  10.  
  11. ## 배열로 구현
  12. - 인덱스로 접근이 쉬워진다 = O(1)
  13. - remove root = O(1)
  14. - insert
  15. - search = O(N)
  16.  
  17.  
  18. ## 트리로 구현
  19. - 노드에 접근하기 = O(log N)
  20. - remove root = siftDown 해야하므로 O(log n)
  21. - insert = siftUp 해야하므로 O(log n)
  22. - search = O(n)
  23. - peek = O(1)
  24.  
  25.  
  26. ## remove root
  27. - root 노드와 마지막 노드를 스왑
  28. - 마지막 노드로 간 root 노드를 지운다
  29. - 새로운 루트 노드가 제자리를 찾을 때까지. Sift down 한다
  30. - siftDown = O(log n)
  31.  
  32. ## insert
  33. - 마지막에 넣기
  34. - 제자리 찾을 때까지 sift Up
  35. - O(log n)
  36.  
  37.  
  38. ## remove 임의의 인덱스 노드
  39. - 마지막 노드와 스왑
  40. - 새로운 이 마지막 노드를 삭제한다
  41. - 마지막 노드가 올라간 자리가 제자리를 찾을 때까지 sift up, sift down 둘다 한다
  42. - O (log n)
  43.  
  44.  
  45. ## search
  46. - O(n)
  47. - 찾을때 priority 에 따라서 위로 가거나 아래로 가거나
Add Comment
Please, Sign In to add comment