Esempio di coda prioritaria di Python

Esempio di coda prioritaria di Python
Python è uno dei linguaggi di programmazione più prevalenti e ampiamente usati. Come altri linguaggi di programmazione, fornisce molte funzioni e librerie che possono essere utilizzate per implementare le strutture di dati di base. La coda è una struttura di dati molto importante; Tuttavia, la sua funzionalità può differire a seconda di come viene implementata. Una delle funzionalità più cruciali di una coda è una coda prioritaria. In questo articolo, impareremo cos'è una coda prioritaria e daremo un'occhiata alle diverse implementazioni di una coda prioritaria in Python.

Cos'è una coda prioritaria?

Come dice il nome, una coda prioritaria è una coda programmata per funzionare secondo l'ordine specificato. Se parliamo di una semplice coda, funziona sull'ordine "FIFO (First in First Out)", io.e., Anche l'elemento inserito nella coda verrà estratto per primo. Tuttavia, a volte, potremmo non volere che la nostra coda funzioni in questo modo; Piuttosto, potremmo desiderare che segua qualche altro ordine specificato. È qui che entrano in gioco le code prioritarie, il che ci consente di estrarre gli elementi di una coda nell'ordine di nostra scelta. Sarai in grado di saperne di più sul loro utilizzo passando attraverso le loro diverse implementazioni discusse di seguito:

Metodi di implementazione della coda prioritaria in Python:

Possiamo usare tre diversi metodi per implementare le code prioritarie in Python, i.e., Utilizzando un elenco, il modulo PriorityQueue e il modulo HEAPQ. Discuteremo tutti e tre questi metodi uno per uno con l'aiuto di esempi pertinenti; Tuttavia, i dati di base che utilizzeremo per tutti questi esempi rimarranno gli stessi in modo da poter confrontare facilmente questi diversi metodi di implementazione.

Nota: per implementare tutti questi esempi in Python, abbiamo utilizzato lo strumento Spyder con il sistema operativo Windows 10.

Metodo n. 1: utilizzando un elenco in Python:

In questo esempio, desideriamo implementare una coda prioritaria che stampa i nomi dei dipendenti e i loro ID nell'ordine decrescente dei loro ID, i.e., Il nome del dipendente con il più alto ID dipendente verrà stampato per primo e così via. Per avere una tale implementazione, puoi dare un'occhiata al seguente codice:

In questo codice, abbiamo dichiarato per la prima volta un elenco chiamato "dipendenti". Dopo aver dichiarato questo elenco, cercheremo di inserire i dati di alcuni dipendenti, io.e., ID dipendente e nome del dipendente a questo elenco con l'aiuto della funzione "Append" integrata degli elenchi in Python. Tuttavia, assegneremo gli ID a questi dipendenti in ordine casuale durante l'inserimento in modo da poter visualizzare facilmente il modo in cui questo elenco è ordinato nell'output.

Ogni volta che desideriamo implementare una coda prioritaria usando un elenco in Python, dobbiamo ordinare l'elenco in ordine crescente o decrescente (a seconda dei requisiti) dopo ogni inserimento per agire come coda prioritaria. In questo esempio, dal momento che volevamo stampare i dipendenti nell'ordine decrescente dei loro ID, abbiamo ordinato l'elenco in ordine decrescente dopo ogni inserimento usando la funzione "Ordina (reverse = true)" di Python ad eccezione del primo inserimento. Non abbiamo chiamato il metodo "Sort ()" dopo il primo inserimento perché avevamo solo un singolo elemento nella nostra lista in quel momento. Infine, dopo aver inserito tutti gli elementi, abbiamo usato un ciclo "mentre" nell'elenco dei dipendenti e abbiamo stampato i dipendenti usando la funzione "pop" di Python. Successivamente, abbiamo salvato il nostro codice e eseguito nell'IDE SPYDER.

Il risultato di questa attuazione della coda prioritaria in Python è il seguente. Puoi facilmente vedere che i dipendenti siano stampati in ordine decrescente dei loro ID.

Metodo n. 2: utilizzando il modulo PriorityQueue in Python:

Il modulo PriorityQueue è una funzione integrata della classe "coda" in Python. In questo esempio, vogliamo stampare i nomi dei dipendenti nell'ordine ascendente dei loro ID, i.e., Il dipendente con l'ID più basso dei dipendenti verrà stampato per primo e così via dall'ordine del loro inserimento. Per avere una coda prioritaria implementata in questo modo, dovrai dare un'occhiata al codice Python mostrato di seguito:

In questo codice, abbiamo prima importato il modulo PriorityQueue dalla classe "coda" Python per implementare facilmente la nostra coda prioritaria. Quindi, abbiamo un elenco di dipendenti che abbiamo pareggiato alla funzione "priorityqueue" per operare facilmente nell'elenco dei dipendenti. Successivamente, abbiamo utilizzato la funzione "Put" integrata di Python per inserire alcuni dati dei dipendenti nell'elenco dei dipendenti. Quindi, abbiamo un ciclo "while" che iterirà attraverso l'elenco dei dipendenti e stamperà i dipendenti nell'ordine ascendente dei loro ID durante l'utilizzo della funzione "get" poiché il modulo prioritarioqueue è programmato per stampare gli elenchi in ordine crescente per impostazione predefinita per impostazione predefinita.

Il risultato di questa attuazione della coda prioritaria in Python è il seguente. Puoi facilmente vedere che i dipendenti siano stampati nell'ordine ascendente dei loro ID.

Metodo n. 3: utilizzando il modulo HEAPQ in Python:

Heapq è un altro modulo integrato di Python che può essere utilizzato per implementare le code prioritarie. Come il metodo n. 2, vogliamo stampare i dipendenti nell'ordine ascendente dei loro ID per questo esempio. Il codice per questa implementazione della coda prioritaria in Python può essere visto nell'immagine mostrata di seguito:

In questo codice, abbiamo prima importato il modulo "heapq" di Python per utilizzare comodamente le funzioni associate per l'inserimento e la stampa dei dati della nostra coda prioritaria. Dopodiché, abbiamo dichiarato un elenco di dipendenti. Quindi, abbiamo inserito alcuni record in ordine casuale usando il "heapq.HEAPPUSH () "funzione del modulo" heapq "nell'elenco dei dipendenti. Quindi, abbiamo semplicemente un ciclo "mentre" che dovrebbe iterare nell'elenco dei dipendenti e stampare i dipendenti nell'ordine ascendente dei loro ID mentre utilizzano il "heapq.funzione heappop () "poiché il modulo" heapq "è programmato per stampare gli elenchi in ordine crescente per impostazione predefinita. Questo modulo può anche essere programmato per stampare gli elenchi in ordine decrescente; Tuttavia, è oltre lo scopo di questo esempio.

Il risultato di questa attuazione della coda prioritaria in Python è il seguente. Puoi facilmente vedere che i dipendenti siano stampati nell'ordine ascendente dei loro ID.

Conclusione:

In questo articolo, il nostro obiettivo principale era sulle code prioritarie in Python. Ti abbiamo introdotto brevemente il concetto di code prioritarie in Python. Dopo aver costruito una solida comprensione di questo concetto, abbiamo condiviso le tre diverse implementazioni delle code prioritarie in Python in Windows 10. Una volta che hai preso bene tutte queste tre implementazioni, puoi scegliere una di queste per implementare la tua coda prioritaria a seconda che tu voglia seguire un ordine ascendente o un ordine decrescente.