[java] 자바 힙의 로그(N) 시간 복잡도 연산 예시

예를 들어, 자바에서 우선순위 큐(priority queue)를 구현할 때 힙을 활용할 수 있습니다. 다음은 요소를 추가하고 제거할 때의 로그(N) 시간 복잡도를 가진 우선순위 큐의 간단한 예시 코드입니다.

import java.util.PriorityQueue;

public class Main {
    public static void main(String[] args) {
        PriorityQueue<Integer> minHeap = new PriorityQueue<>();

        // 요소 추가: 로그(N) 시간 복잡도
        minHeap.add(5);
        minHeap.add(3);
        minHeap.add(10);

        // 요소 제거: 로그(N) 시간 복잡도
        minHeap.poll(); // 가장 작은 요소 제거
    }
}

위 코드에서, PriorityQueue는 힙을 내부적으로 활용하여 요소를 추가하고 제거할 때 로그(N) 시간 복잡도를 보장합니다.

이러한 시간 복잡도는 힙의 효율성을 나타내며, 대량의 데이터에서도 빠른 성능을 제공합니다.