힙의 참조 시간복잡도가 이해되지 않습니다..
335
작성한 질문수 11
이진트리로 구성된 Map이나 Set의 참조 시간복잡도가 O(logn)인데조금 다른 트리긴 해도 Heap의 참조 시간복잡도가 O(1)인게 이해가 안되는데Heap의 참조와 탐색 시간복잡도에 대해서조금 더 자세히 설명해 주실수 있으신지 해서 질문 드립니다. 예를 들어 참조의 경우 루트노드에 대한 접근이 O(1)이라는 말씀이실까요??자식노드에 대한 접근까지 내려가면 O(logn)이거나 O(n)일거 같은데.. 아니면 제가 참조와 탐색에 대한 개념을 잘못 잡고 있는것일까요..
답변 1
0
안녕하세요 ㅎㅎ
예를 들어 참조의 경우 루트노드에 대한 접근이 O(1)이라는 말씀이실까요??자식노드에 대한 접근까지 내려가면 O(logn)이거나 O(n)일거 같은데.. 아니면 제가 참조와 탐색에 대한 개념을 잘못 잡고 있는것일까요..
>> 네 맞습니다.
힙의 경우 맨 위쪽 노드 - 루트노드만 참조가 가능합니다. 아래노드까지 참조에 대한 인터페이스 자체가 없습니다. 그리고 맨 위쪽 노드만 참조했을 때의 시간복잡도가 O(1)이기 때문에 O(1)의 시간복잡도를 가진다고 보시면 됩니다.
힙을 통해서 탐색하는 경우는 없습니다. 힙이란 가장 높은 또는 낮은 요소가 맨 위쪽으로 참조가 가능하도록 자동 정렬된 트리라고 보시면 됩니다.
이부분과 착각 하시는것 같아 예를 들면요.
예를 들어 BST 같은 경우 참조가 아니라 탐색위주로 보시면 됩니다. BST는 모든 노드에 대한 참조가 가능합니다. 힙처럼 루트노드만이 아니구요. ㅎㅎ
다만 이 BST는 가장 낮은 요소 또는 높은 요소가 맨 상단에 위치해 있지 않습니다. 그저 왼, 오로 정렬만 되어있을 뿐이죠. 만약 가장 낮은 요소 또는 높은 요소를 찾으려면 탐색을 통해 가장 아래노드까지 찾아가야 하는 자료구조입니다. 이부분이 서로 다릅니다.
이진트리로 구성된 Map이나 Set의 참조 시간복잡도가 O(logn)인데조금 다른 트리긴 해도 Heap의 참조 시간복잡도가 O(1)인게 이해가 안되는데Heap의 참조와 탐색 시간복잡도에 대해서조금 더 자세히 설명해 주실수 있으신지 해서 질문 드립니다. 예를 들어 참조의 경우 루트노드에 대한 접근이 O(1)이라는 말씀이실까요??자식노드에 대한 접근까지 내려가면 O(logn)이거나 O(n)일거 같은데.. 아니면 제가 참조와 탐색에 대한 개념을 잘못 잡고 있는것일까요..
REST API (Self-descriptive messages)
0
28
1
시스템 엔지니어 관련 질문입니다.
0
52
2
오버라이딩 관련하여 질문드립니다.
0
62
2
교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유
0
91
1
렌더 트리, 렌더 레이어와 그래픽 레이어
0
57
2
로컬스토리지, 세션스토리지, 쿠키의 공통점
0
68
1
IPv4가 IPv6보다 빠른 경우
0
102
2
UDP가 전송계층의 역할을 못하는 건 아닌지
0
59
1
Path MTU 발견하였음에도 패킷 분할이 필요한 이유?
0
65
2
교재의 LFU 알고리즘에서 6번이 왜 히트인가요?
0
64
2
페이지 교체 알고리즘? 프레임 교체 알고리즘?
0
83
2
Static 키워드가 메모리에 올라가는 시점
0
77
2
헤더 압축부분 질문드립니다
0
73
2
공유 캐시 관련 질문 드립니다.
0
56
2
컨텍스트는 context와 contextual information으로 나눠진다는게 무슨뜻인가요?
0
201
1
회선과 대역폭의 관계
0
62
2
44강 질문
0
95
2
버스 토폴로지 질문 있씁니다
0
55
1
자바스크립트, xml 문법 관련
0
66
2
전략패턴과 의존성주입 질문
0
69
2
Model이 비즈니스 로직을 담당하나요?
0
107
2
CS 공부 하는 법
0
181
2
큰돌님 블로그에 개념정리해서 올려도될까요!
0
137
2
FIN 세그먼트 질문
0
71
2





