← 질문 목록
#374깊이 0

K-way 병합 시 최소 힙 대신 패자 트리를 사용하는 이유는 무엇인가?

자료구조 · 알고리즘

다음 승자를 결정할 때 부모 노드 하나와만 비교하여 연산량을 줄이기 때문이다.

기준최소 힙패자 트리
비교 방식자식 둘을 비교한 뒤 더 작은 값과 비교부모 노드와만 1대1 비교
노드 이동루트에서 아래로 내려가며 재정렬노드에서 루트로 올라가며 재정렬
단계당 비교21

최소 에서 최솟값을 꺼내면 끝 노드가 루트로 이동한다. 이후 자식 노드 둘 중 작은 값을 찾고 그 값과 자신을 비교한다. 바닥까지 내려가며 매 단계마다 두 번씩 비교가 일어난다.

패자 트리는 부모 노드에 패자 정보를 저장한다. 새 값이 들어오면 루트까지 올라가며 만나는 부모와 한 번씩만 비교한다. 자식끼리 비교하는 과정이 사라져 비교 횟수가 반으로 줄어든다.

대용량 데이터를 다루는 외부 정렬에서는 K가 수백 이상으로 커진다. 이때 패자 트리를 쓰면 비교 비용이 줄어 병합 속도가 빨라진다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

K-way 병합 시 최소 힙 대신 패자 트리를 사용하는 이유는 무엇인가?