Introduzione a Heap Sort in Python

Tutti i linguaggi di programmazione offrono varie funzionalità in virtù di funzioni predefinite. Sfruttando i metodi predefiniti e le funzionalità offerte dal linguaggio di programmazione, è possibile sviluppare un'applicazione complessa. Quando parliamo di trasformare i valori dell'elenco nella forma ordinata, l'approccio si chiama ordinamento. Sebbene l'output dell'ordinamento sia lo stesso indipendentemente dall'approccio di ordinamento, l'approccio migliore garantisce l'efficienza dei dati di ordinamento. Quando si tratta di ordinare usando il linguaggio di programmazione Python, abbiamo un metodo sort () che può semplicemente accettare il valore e ordinarlo in ordine crescente. In questo articolo, impareremo come ordinare i dati dell'array in ordine crescente usando l'heap sort e useremo il linguaggio di programmazione python per eseguire l'implementazione del codice di heapsort.

Come funziona Heap Sort in Python?

  • Prima di spiegare il funzionamento di Python, è importante capire che cosa è in realtà 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 confrontato e spostato all'ultimo della matrice e il processo viene continuato ripetendo fino a quando l'elenco viene trasformato in un elenco ordinato. il modo in cui lo differenzia 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 fino a quando i valori nell'array sono disposti in ordine crescente.
  • Ora cerchiamo di capire come l'ordinamento dell'heap funziona in dettaglio usando un esempio. Supponiamo che arr sia un array che contiene 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 lo farà per 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 passo a sinistra per creare spazio per contenere il valore più grande. Una volta che 9 viene spostato sull'ultimo indice o array arr, l'elenco dei valori apparirà come 5, 2, 9.
  • Ora, 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 nel secondo ultimo indice. Dopo aver spostato 5 nella seconda ultima posizione, l'array verrà trasformato in un array ordinato e i valori saranno disposti nell'ordine crescente dell'assieme come 2, 5, 9. Questo è il modo in cui funziona l'heap sort. 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 si trasforma in array ordinato.

Esempi per implementare l'ordinamento degli heap in Python

Per imparare il concetto di heapsort, facci capire usando l'esempio reale. Implementeremo l'algoritmo di ordinamento dell'heap usando il linguaggio python. Per sviluppare il programma, useremo il ciclo for per portare il meccanismo di ricorsione e useremo se il controllo delle condizioni 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 è di 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 a tale posizione venga impedito di essere aggiornato dal valore più grande successivo nell'elenco. Il programma ripeterà l'approccio di trovare il valore più grande e spostarlo fino alla fine fino a quando l'elenco si inserisce in quello ordinato.

Codice:

def perform_heapsort(val_arr, num, count):
max_val = count
counter1 = 2 * count + 1
counter2 = 2 * count + 2
if counter1 < num and val_arr(count) < val_arr(counter1):
max_val = counter1
if counter2 < num and val_arr(max_val) < val_arr(counter2):
max_val = counter2
if max_val != count:
val_arr(count), val_arr(max_val) = val_arr(max_val), val_arr(count) perform_heapsort(val_arr, num, max_val)
def heapSort(val_arr):
num = len(val_arr)
for count in range(num, -1, -1):
perform_heapsort(val_arr, num, count)
for count in range(num-1, 0, -1):
val_arr(count), val_arr(0) = val_arr(0), val_arr(count) # swap
perform_heapsort(val_arr, count, 0)
val_arr = ( 52, 91, 64, 252, 36, 91, 5, 35, 28) heapSort(val_arr)
num = len(val_arr)
print ("Values after performing heapsort")
for count in range(num):
print ("%d" %val_arr(count)),

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 nella matrice verranno passati al metodo denominato perform_heapsort. Una volta che i valori entrano nel metodo, questo verrà elaborato 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 su tutti i valori fino a quando l'array non si trasformerà in array ordinato. Una volta che l'array è stato ordinato dal programma, l'output verrà visualizzato nell'output.

Produzione:

Conclusione

Heapsort è uno dei vari algoritmi di ordinamento. L'output finale di questo algoritmo è l'elenco ordinato con i dati disposti in ordine crescente. Man mano che il processo viene ripetuto e ogni volta che 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 all'ordinamento può essere sfruttato nell'applicazione che dovrebbe elaborare un numero limitato di valori.

Articoli consigliati

Questa è una guida per Heap Sort in Python. Qui discutiamo l'introduzione di Heap Sort in Python, come funziona Heap Sort in Python e gli esempi per implementare Heap Sort in Python. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più-

  1. Che cos'è l'informatica?
  2. Che cos'è l'apprendimento automatico?
  3. Sicurezza delle applicazioni Web
  4. Funzionalità di Python
  5. Guida all'ordinamento degli algoritmi in Python

Categoria: