Java/Class & method

PriorityQueue(우선순위 큐)

sanghyeon 2022. 12. 22. 18:18

PriorityQueue(우선순위 큐)

일반 적인 큐의 구조와 동일하나 데이터가 들어온 순서대로 나가는 것이 오름차순으로 따라 데이터가 나가는 자료구조

시간 복잡도 : O(NlogN)

 

import java.util.PriorityQueue;

public class Main {
    public static void main(String[] args) {
        PriorityQueue<Integer> desc = new PriorityQueue<>();
        desc.add(3);desc.add(5);desc.add(2);desc.add(1);desc.add(4);
        
        while (desc.size() > 0){
            System.out.print(desc.poll());  // 1 2 3 4 5 출력됨
        }
    }
 }

 

Collections.reverseOrder() 를 사용하여 내림차순으로 도 사용가능 

import java.util.Collections;
import java.util.PriorityQueue;

public class Main {
    public static void main(String[] args) {
        PriorityQueue<Integer> asc = new PriorityQueue<>(Collections.reverseOrder());
        asc.add(3);asc.add(5);asc.add(2);asc.add(1);asc.add(4);

        System.out.println(asc);
        while (asc.size() > 0){
            System.out.print(asc.poll());  //5 4 3 2 1 출력
        }
    }
}