누룽지맛치킨
어미새의 개발일지
누룽지맛치킨
전체 방문자
오늘
어제
  • 분류 전체보기 (86)
    • 코틀린 (8)
    • 안드로이드 (5)
      • 디자인 (2)
      • 개발 (2)
      • 도구 (1)
    • 피그마 (1)
    • 대외활동 (0)
    • 프로젝트 (0)
    • 백준 (55)
      • JAVA (55)
    • 알고리즘 (3)
    • 클라우드 (5)
    • 스터디 (2)
      • 코테 (2)
    • 자료구조 (5)
    • 컴퓨터 기술 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Room Migration
  • 안드로이드 디자인
  • 백준 자바 수열
  • 클라우드 컴퓨팅
  • 백준 자바 다이나믹 프로그래밍
  • 알고리즘 조합
  • 백준 자바 누적합
  • 코틀린 인 액션
  • 백준 자바 정렬
  • 코틀린 runBlocking
  • 자료구조
  • 백준 자바 2559번
  • Room version 올리기
  • 코틀린
  • 백준 자바
  • 자바 Priority Queue
  • 안드로이드
  • 백준 자바 벌집
  • 백준 자바 2292번
  • 클라우드

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
누룽지맛치킨

어미새의 개발일지

자료구조

[JAVA] Priority Queue

2023. 7. 6. 11:19

우선 순위 큐는 가장 높은 우선 순위 요소의 효율적인 검색을 지원하는 자료구조이다. 요소에는 대기열에서 액세스하거나 제거하는 순서를 결정하는 우선 순위가 할당된다. 우선순위 대기열은 FIFO(First-In-First-Out) 동작을 나타내어 우선순위가 가장 높은 요소가 항상 대기열의 맨 앞에 오도록 한다.

 

Priority Queue의 특징

1. 높은 우선순위의 요소를 하나씩 꺼내서 처리하는 구조

2. 보통 바이너리 힙으로 Priority Queue를 구현하고, 이는 이진트리 구조로 이루어져 있다.

3. 삽입, 삭제에 대해 시간 복잡도가 O(NLogN)이다.

 

Java Priority Queue 구현

import java.util.PriorityQueue;

public class PriorityQueueExample {
    public static void main(String[] args) {
        // Create a priority queue
        PriorityQueue<Integer> pq = new PriorityQueue<>();

        // Add elements to the priority queue
        pq.offer(5);
        pq.offer(1);
        pq.offer(3);
        pq.offer(2);
        pq.offer(4);

        // Retrieve and remove the highest-priority element
        while (!pq.isEmpty()) {
            System.out.println(pq.poll());
        }
    }
}

 

Class에 대한 Prioriry Queue

기본형에 대한 Priority Queue는 기본 타입에 대해 비교가 가능하여 우선순위를 정할 수 있지만, class를 직접 만들어 사용하는 경우 Comparable Interface를 implements하고, compareTo method를 우선 순위에 맞게 override하여 구현해 주면 된다.

'자료구조' 카테고리의 다른 글

힙(heap)  (0) 2023.02.10
덱(deque)  (0) 2023.02.02
큐  (0) 2023.02.02
스택  (0) 2023.02.02
    '자료구조' 카테고리의 다른 글
    • 힙(heap)
    • 덱(deque)
    • 큐
    • 스택
    누룽지맛치킨
    누룽지맛치킨

    티스토리툴바