Kolejka priorytetowa (ang. priority queue) – abstrakcyjny typ danych służący do reprezentowania zbioru elementów, z których każdy ma przyporządkowaną wartość zwaną kluczem[1].

Zastosowania

edytuj

Kolejka priorytetowa jest abstrakcyjnym typem danych. Istnieją różne implementacje tej idei, różniące się czasem działania, kosztem i innymi cechami.

Operacje

edytuj

Kolejki typu max

edytuj

Na kolejkach tego typu można wykonywać następujące operacje[1] (niech S oznacza zbiór):

Nazwa Opis
insert(S, x) Wstawianie nowego elementu x do zbioru. Matematycznie:
maximum(S) Zwrócenie elementu o największym kluczu.
extract_max(S) Zwrócenie elementu o największym kluczu z jednoczesnym usunięciem go ze zbioru.
increase_key(S, x, k) Zwiększa wartość klucza elementu x na nową wartość k przy założeniu, że jest on nie mniejszy, niż aktualna wartość klucza.

Kolejki priorytetowe typu max są używane m.in. do szeregowania procesów w jądrach systemów operacyjnych[1][3].

Kolejki typu min

edytuj

Na kolejkach tego typu można wykonywać następujące operacje[1] (niech S oznacza zbiór):

Nazwa Opis
insert(S, x) Wstawianie nowego elementu x do zbioru. Matematycznie:
minimum(S) Zwrócenie elementu o najmniejszym kluczu.
extract_min(S) Zwrócenie elementu o najmniejszym kluczu z jednoczesnym usunięciem go ze zbioru.
decrease_key(S, x, k) Zmienia wartość klucza elementu x na nową wartość k przy założeniu, że jest ona nie większa, niż aktualna wartość klucza.

Kolejki priorytetowe tego typu są używane m.in. w symulatorach zdarzeń[1].

Przy założeniu, że dane są b-bitowymi liczbami całkowitymi, a pamięć komputera składa się z adresowalnych słów b-bitowych, można zaimplementować operację minimum działającą w czasie stałym, a operacje insert oraz extract-min w działające w czasie [4]. Przy założeniu, że pamięć jest nieograniczona (lub przy założeniu pamięci liniowej przy użyciu randomizowanego haszowania) można uzyskać oszacowanie [5].

Przypisy

edytuj
  1. a b c d e f g Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Wprowadzenie do algorytmów, Krzysztof Diks (tłum.) i inni, wyd. VII (I w PWN), Warszawa: PWN, 2015, ISBN 978-83-01-16911-4 (pol.).
  2. a b Kolejki priorytetowe [online], users.uj.edu.pl [dostęp 2016-08-19] [zarchiwizowane z adresu 2016-09-01].
  3. Jędrzej Ułasiewicz, Sieciowe systemy operacyjne, szeregowanie [online] [dostęp 2017-12-27] [zarchiwizowane z adresu 2016-04-29].
  4. Michael Fredman, Dan Willard, Surpassing the information theoretic boundwith fusion trees, „Journal of Computer and System Sciences”, 47(3), grudzień 1993, s. 424–436 (ang.).
  5. Mikkel Thorup, On RAM priority queues, „SIAM Journal of Computing”, 30(1), 2000, s. 86–109 (ang.).

📚 Artikel Terkait di Wikipedia

Wonder Egg Priority

wonder-egg-priority.com [dostęp 2022-05-23]  (jap.). 沢木 修一郎 [online], wonder-egg-priority.com [dostęp 2022-05-23]  (jap.). アカ [online], wonder-egg-priority.com

Kolejka (informatyka)

2012 ↓, s. 161-164. Banachowski, Diks i Rytter 2001 ↓, s. 70-78. Linux Priority-Queue Scheduler. lse.sourceforge.net. [dostęp 2018-03-13]. „Elementarne struktury

Priority Records

zarządu K-tel Records: Raya i Harolda Kives; miała 50% udziałów w Priority. Wytwórnia Priority wykupiła swoje akcje w 1987 roku. Na początku w celu wzmocnienia

Top Priority

projekt – stąd tytuł „top priority” (ang. najwyższy priorytet). W 1998 roku pojawiła się zremasterowana wersja Top Priority, zawierająca dwa dodatkowe

Baileys

Crème Caramel, Hazelnut, Biscotti, Red Velvet, Colada i Orange Truffle. Priority Brands – Ireland. [dostęp 2012-04-21]. (ang.). Baileys Orange Truffle given

Kaeyra

roku życia występowała również jako wokalistka formacji Caroline & The Priority, z którą debiutowała na Zaduszkach Jazzowych (Jazz All Souls' Day) w 2015

Konkurs Piosenki Eurowizji 2026

Ani po 14 rokoch nebudeme súčasťou Eurovízie. Slovenská televízia má iné priority [online], Refresher(inne języki), 23 lipca 2025 [dostęp 2025-07-28]  (słow

The Priority Telecom Open 2004

The Priority Telecom Open 2004 – tenisowy turniej ATP rangi ATP International Series z cyklu The Priority Telecom Open rozgrywany w dniach 12–18 lipca