자바스크립트 우선순위 큐

| | | | | | | | | | | | | | | | | | | | | | | | | | | |

Python 우선 순위 대기열: 가이드

A는 Python 우선 순위 대기열 데이터를 특정 순서로 저장합니다. Python에서 우선순위 큐를 구현하는 방법에는 두 가지가 있습니다. 대기열 클래스 사용 및 heapq 모듈 사용

목록에 있는 각 항목의 값을 기준으로 데이터를 정렬할 수 있습니다. 예를 들어 가장 높은 값이 목록에 먼저 나타나도록 하고 가장 낮은 값이 마지막 목록에 나타나도록 할 수 있습니다.

는 우선 순위 대기 대기열이 들어옵니다. 우선 순위 대기 대기열은 데이터 키 값을 기준으로 데이터를 오름차순으로 저장하는 구조입니다. 이렇게 하면 대기열에서 가장 작은 값과 가장 큰 값에 쉽게 액세스할 수 있습니다.

이 자습서에서는 우선 순위 대기 대기열을 만들기 위해 목록을 사용하지 말아야 하는 이유를 설명합니다. Python 우선 순위 대기열을 만드는 데 사용할 수 있는 두 가지 더 효율적인 접근 방식을 보여 드리겠습니다.

Python 우선 순위 대기열이란 무엇입니까?

우선 순위 대기열은 어떤 항목이 가장 높은 우선 순위를 갖는지 순서대로 데이터를 저장하는 큐입니다. 우선 순위 대기열에 있는 각 항목의 우선 순위는 항목의 값에 따라 결정됩니다.

계산에서 대기열은 FIFO(선입선출) 순서의 메모리 요소인 데이터 구조입니다. -밖). 이 기능을 사용하는 것이 도움이 될 수 있는 몇 가지 시나리오가 있습니다.

예를 들어 레스토랑의 주문 추적 앱을 구축한다고 가정해 보겠습니다. 주문한 사람은 나중에 주문하여 사람들 앞에서 먼저 서빙해야합니다. . 명령을 추적하려면 대기열을 사용해야 합니다.

Python에서 우선 순위 대기열을 설정하는 방법에는 두 가지가 있습니다.

  • PriorityQueue Queue 클래스 사용
  • heapq 모듈 사용

목록 구조를 사용하여 우선순위 대기열을 설정할 수 있지만 이 전략은 대기열 클래스 또는 모듈 PriorityQueue heapq를 사용하는 것보다 덜 효율적입니다.

우선순위 대기열 플레이트:. Queue.PriorityQueue

queue.PriorityQueue 은 Python 우선순위 대기열을 생성합니다. 이 클래스는 Python 코드 라이브러리의 일부입니다. 이 클래스를 사용하기 위한 큐 라이브러리. PriorityQueue에서 항목을 검색하려면 get() 메서드를 사용할 수 있습니다.

PriorityQueue 클래스에 액세스하려면 코드로 가져와야 합니다. 이 import Python 문 사용:

대기열 d `를 생성한다고 가정합니다. con rt에서 티켓 소지자를 우선적으로 기다리고 있습니다. 다음 코드를 사용하여 이를 수행할 수 있습니다.

코드 반환:

우리 코드에서는 먼저 file 라이브러리에서 PriorityQueue 클래스를 가져오기 위해 다음을 초기화해야 합니다. ticket_holders라는 우선 순위 대기열. 다음으로 우선 순위 대기열에 세 개의 튜플, 매장 티켓 번호 및 티켓과 연결된 이름을 넣습니다.

Python 루프를 사용합니다. ticket_holders 우선 순위 대기열의 각 항목을 검사합니다. 그런 다음 get()을 사용하여 이 요소를 얻습니다.

queue.PriorityQueue 메서드는 효과적이고 사용하기 쉽기 때문에 필요할 때 탁월한 선택이 됩니다. 우선순위 대기 대기열을 생성합니다.

Python heapq 우선순위 대기열 모듈

heapq 모듈을 사용하면 Python 우선순위 대기열을 정의할 수 있습니다. heapq 데이터 구조는 우선 순위에 따라 항목을 제거합니다. heapq 구조에서 가장 낮은 값은 가장 낮은 우선순위를 가지며 가장 높은 값은 가장 높은 우선순위를 갖습니다.

전 heapq 모듈을 사용할 수 있으면 먼저 다음 가져오기 명령을 사용하여 코드로 가져와야 합니다.

두 가지 모두 이전 예제로 이동합니다. 콘서트 티켓 소지자에 대한 정보를 저장하기 위해 우선 순위 대기열을 생성한다고 가정합니다. 그런 다음 heapq 모듈과 다음 프로그램을 사용하여 이 작업을 수행할 수 있습니다.

코드는 다음을 반환합니다.

먼저 heapq 라이브러리를 가져온 다음 Python 변수 . heappush() 메서드를 사용하여 우선 순위 대기열에 3개의 튜플을 넣었습니다. 이 대기열은 각 티켓 소지자의 티켓 번호와 각 티켓 소지자의 이름을 저장합니다.

그런 다음 우선 순위 대기열의 각 항목을 살펴보는 동안 루프를 만들었습니다. 이 루프는 heappop()을 사용하여 대기 대기열의 최상위 요소를 제거합니다. 그런 다음 삭제된 항목이 콘솔에 인쇄됩니다. 보시다시피 대기열의 모든 항목은 우선순위에 따라 인쇄됩니다.

목록을 유지하면 안 되는 이유

기술적으로 < a href="/python-network/">python 목록 데이터 구조. 이렇게 하려면 목록을 만든 다음 오름차순으로 정렬해야 합니다.

그러나 이것은 우선 순위 대기열을 유지하는 데 상대적으로 비효율적인 방법입니다. 목록의 항목을 편집하는 동안 목록을 재정렬해야 하므로 시간이 걸립니다.

몇 가지 값만 저장해야 하는 경우 기존 목록을 우선 순위 대기열로 사용할 수 있습니다. 그러나 더 큰 대기열을 만들려는 경우 목록은 좋은 옵션이 아닙니다.

참고로 리스트를 이용한 우선순위 큐의 예를 살펴보자. 첫 번째 콘서트에 입장해야 하는 티켓 소지자의 순서를 저장하는 우선 순위 대기열을 생성한다고 가정합니다. 다음 코드를 사용하여 이 대기열을 만들 수 있습니다.

코드 반환:

ticket_holders라는 목록을 만들고 이 목록에 3개의 튜플을 추가했습니다. 각 튜플에는 티켓 소유자의 티켓 번호와 이름이 포함되어 있습니다. 다음으로 Python sort() 함수를 사용하여 티켓 소지자 목록을 역순으로 정렬했습니다.

우리는 각 항목을 통과하는 긴 시간 루프를 만들었습니다. 티켓 소지자 목록 및 목록 상단의 항목. 그런 다음 코드는 삭제된 항목을 콘솔에 인쇄합니다.

결론

대기열 우선순위를 만드는 데 가장 일반적인 두 가지 방법은 heapq 또는 queue 모듈을 사용하는 것입니다. PriorityQueue 클래스. 기술적으로 목록을 우선 순위 대기열로 사용하는 것이 가능하지만 이 접근 방식은 잘 작동하지 않습니다.

이 자습서에서는 예제를 참조하여 Python에서 우선 순위 대기열을 만드는 방법에 대해 설명했습니다. 이제 준비되었습니다. Python 전문가처럼 우선순위 대기열 구축을 시작할 수 있는 지식을 가지고 있습니다!

Python 학습에 대한 자세한 정보는 Python 학습 가이드 < /a>.