Aiuta lo sviluppo del sito, condividendo l'articolo con gli amici!

Introduzione a Heap Sort in Python

Heap sort è una delle tante tecniche di strutturazione dei dati utilizzate per ordinare i dati/elementi, che implica il processo di ordinare continuamente il numero/carattere più grande nell'elenco fino all'ultima posizione fino a quando l'intero elenco non è completamente ordinato in ordine ascendente. Un python è un linguaggio di programmazione orientato agli oggetti che offre metodi predefiniti per operazioni aritmetiche e logiche che possono essere applicati a qualsiasi tipo di dato/elemento nel programma.In un programma Python, l'ordinamento Heap può essere ottenuto logicamente usando funzioni come count(), len(), max(), range(), ecc.

Come funziona Heap Sort in Python?

  • Prima di spiegare il funzionamento di Python, è importante capire che cos'è effettivamente e come è diverso dagli altri algoritmi di ordinamento. Heapsort può essere considerato come l'approccio di ordinamento in cui il valore massimo dall'elenco viene rilevato e spostato all'ultimo dell'array e il processo viene ripetuto finché l'elenco non viene trasformato in un elenco ordinato. Il modo che lo rende diverso dagli altri metodi di ordinamento non è altro che l'approccio che segue per ordinare tutti i valori dell'array. Consiste nel processo ricorsivo che dura finché i valori nell'array non vengono disposti in ordine crescente.
  • Ora cerchiamo di capire in dettaglio come funziona l'ordinamento dell'heap usando un esempio. Supponiamo che arr sia un array che contenga valori come 9,5,2.All'inizio, i valori dell'array non sono disposti in modo ordinato, ma dopo aver eseguito l'ordinamento dell'heap, verrà trasformato in ordine crescente. Quando l'algoritmo di ordinamento dell'heap viene applicato a questo array, la prima cosa che farà è trovare il nostro valore più grande nell'array. Poiché 9 è il valore più grande, verrà spostato nell'ultimo indice dell'elenco e tutti gli altri valori si sposteranno di un passaggio a sinistra per creare spazio per contenere il valore più grande. Una volta che 9 è stato spostato sull'ultimo indice o array arr, l'elenco dei valori apparirà come 5,2,9.
  • L'array non è ancora ordinato, il che indica che lo stesso processo deve essere ripetuto di nuovo. Ora, mentre si trova il valore più grande dall'elenco dei valori non elaborati, 5 verrà selezionato come secondo valore più grande e verrà spostato al penultimo indice. Dopo aver spostato 5 nella penultima posizione, l'array verrà trasformato in un array ordinato e i valori verranno disposti nell'ordine crescente dell'assieme come 2,5,9. Questo è il modo in cui funziona l'ordinamento dell'heap.In termini reali, identifica il valore massimo e lo sposta alla fine dell'array e continua a eseguire lo stesso processo fino a quando l'array non diventa l'array ordinato.

Esempi per implementare l'ordinamento heap in Python

Per imparare il concetto di heapsort, comprendiamolo usando l'esempio reale. Implementeremo l'algoritmo di ordinamento dell'heap utilizzando il linguaggio python. Per sviluppare il programma, useremo il ciclo for per portare il meccanismo di ricorsione e useremo il controllo delle condizioni if per verificare le condizioni. Nel codice seguente, perform_heapsort è la funzione che accetta tre argomenti: val_arr, num e count, dove var_arr è l'array mentre num e count sono di un tipo di dati intero. L'idea del codice seguente è trovare il numero più grande e tenerlo temporaneamente nella variabile max_val fino a quando non viene spostato alla fine dell'array. Se è stata utilizzata un'istruzione per garantire che il valore più grande venga spostato nella posizione appropriata e che tale posizione venga bloccata dall'aggiornamento dal valore più grande successivo nell'elenco.Il programma ripeterà l'approccio per trovare il valore più grande e spostarlo alla fine finché l'elenco non diventa quello ordinato.

Codice:

def perform_heapsort(val_arr, num, count): max_val=conteggio contatore1=2conteggio + 1 contatore2=2conteggio + 2 se contatore1 

In questo programma, i valori sono stati assegnati manualmente tramite il codice. var_arr è l'array che contiene i valori. In questo esempio, abbiamo assegnato 9 valori all'array. I valori nell'array verranno passati al metodo chiamato perform_heapsort. Una volta che i valori sono entrati nel metodo, verranno elaborati e il programma inizierà a trovare il valore più grande dall'elenco. Il valore massimo in questo array è 252, quindi verrà spostato alla fine dell'array e questo processo verrà applicato a tutti i valori finché l'array non si trasformerà nell'array ordinato. Una volta che il programma ordina l'array, l'output verrà visualizzato nell'output.

Uscita:

Conclusione

Heapsort è uno dei vari algoritmi di ordinamento. L'eventuale output di questo algoritmo è l'elenco ordinato che ha i dati disposti in ordine crescente. Poiché il processo viene ripetuto e tutti i valori vengono spostati a sinistra per regolare il valore massimo dell'elenco alla fine dell'array, viene considerato l'algoritmo di ordinamento meno efficiente. Questo approccio di ordinamento può essere sfruttato nell'applicazione che dovrebbe elaborare un numero limitato di valori.

Aiuta lo sviluppo del sito, condividendo l'articolo con gli amici!