mun dev

[Java] 우선순위 큐 정렬하기 priorityQueue sort 본문

공부/Java

[Java] 우선순위 큐 정렬하기 priorityQueue sort

mndev 2023. 6. 5. 11:19

선순위 큐는 힙(Heap)구조를 가진다.

정렬 기준에 따라 가장 큰 값이 먼저 나오는 MaxHeap을 만들 수 있고, 가장 작은 값이 나오는 MinHeap을 만들 수 있다.

 

1. 우선순위 큐(오름차순)

우선순위 큐는 기본적으로 정수형에 대해 오름차순 정렬을 합니다.

 public static void main(String[] args) {
        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
 
        priorityQueue.add(3);
        priorityQueue.add(2);
        priorityQueue.add(5);
        priorityQueue.add(1);
 
        
        while(!priorityQueue.isEmpty()) {
            System.out.println(priorityQueue.poll());        
        }
    }

 

// 출력결과
1 2 3 5

 

2. 우선순위 큐(내림차순)

우선순위 큐를 내림차순으로 정렬하기 위해서는  Collections클래스에 reverseOrder을 사용하면 내림차순으로 Heap구조를 만들 수 있습니다.

 

 public static void main(String[] args) {
        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(Collections.reverseOrder());
 
        priorityQueue.add(3);
        priorityQueue.add(2);
        priorityQueue.add(5);
        priorityQueue.add(1);
 
        
        while(!priorityQueue.isEmpty()) {
            System.out.println(priorityQueue.poll());        
        }
    }

 

// 출력결과
5 3 2 1