Inleiding tot Heap Sort in Python

Elk van de programmeertalen biedt verschillende functionaliteit op grond van vooraf gedefinieerde functies. Door gebruik te maken van de vooraf gedefinieerde methoden en de functies die door de programmeertaal worden geboden, kan een complexe applicatie worden ontwikkeld. Als we het hebben over het transformeren van de waarden van de lijst in de gesorteerde vorm, wordt de aanpak sortering genoemd. Hoewel de uitvoer van het sorteren hetzelfde is, ongeacht de sorteerbenadering, zorgt de beste aanpak voor de efficiëntie van het sorteren van gegevens. Als het gaat om sorteren met behulp van de programmeertaal python, hebben we de methode sort () die eenvoudig de waarde kan accepteren en deze in oplopende volgorde kan sorteren. In dit artikel zullen we leren hoe we de gegevens van de array in oplopende volgorde kunnen sorteren met behulp van heap sort en zullen we de programmeertaal python gebruiken om de code-implementatie van heapsort uit te voeren.

Hoe werkt Heap Sort in Python?

  • Voordat u de werking van Python uitlegt, is het belangrijk om te begrijpen wat het eigenlijk is en hoe het verschilt van andere sorteeralgoritmen. Heapsort kan worden beschouwd als de sorteerbenadering waarbij de maximale waarde uit de lijst wordt aangetroffen en wordt verschoven naar de laatste van de array en het proces wordt herhaald tot de lijst wordt omgezet in een gesorteerde lijst. de manier waarop het zich onderscheidt van de andere sorteermethoden is niets anders dan de aanpak die het volgt om alle waarden van de array te sorteren. Het bestaat uit het recursieve proces dat duurt totdat de waarden in de array in oplopende volgorde zijn gerangschikt.
  • Laten we nu begrijpen hoe de heap-sortering in detail werkt aan de hand van een voorbeeld. Stel dat arr een array is met waarden zoals 9, 5, 2. In het begin zijn de waarden van de array niet op een gesorteerde manier gerangschikt, maar na het uitvoeren van de heap-sortering wordt deze in oplopende volgorde omgezet. Wanneer het heap-sorteeralgoritme op deze array wordt toegepast, is het allereerste wat het doet om onze grootste waarde in de array te vinden. Omdat 9 de grootste waarde is, wordt deze naar de laatste index van de lijst verplaatst en worden alle andere waarden één stap naar links verplaatst om ruimte te maken voor het vasthouden van de grootste waarde. Zodra 9 is verschoven naar de laatste index of array arr, ziet de zoeklijst eruit als 5, 2, 9.
  • Nu wordt de array nog steeds niet gesorteerd, wat aangeeft dat hetzelfde proces opnieuw moet worden herhaald. Terwijl nu de grootste waarde wordt gevonden in de lijst met onbewerkte waarden, wordt 5 geselecteerd als de op een na grootste waarde en wordt deze verplaatst naar de voorlaatste index. Nadat 5 op de voorlaatste positie is verplaatst, wordt de array omgezet in een gesorteerde array en worden de waarden in oplopende volgorde van de assemblage gerangschikt, bijvoorbeeld 2, 5, 9. Dit is de manier waarop heap-sortering werkt. In reële termen identificeert het de maximale waarde en verplaatst het naar het einde van de array en blijft het hetzelfde proces uitvoeren totdat de array in de gesorteerde array verandert.

Voorbeelden om Heap Sort in Python te implementeren

Om het concept heapsort te leren, laten we het begrijpen aan de hand van het werkelijke voorbeeld. We zullen het heap sort-algoritme implementeren met behulp van de python-taal. Om het programma te ontwikkelen, zullen we de for-lus gebruiken om het recursiemechanisme te brengen en zullen we condities controleren om de voorwaarden te verifiëren. In de onderstaande code is perform_heapsort de functie die drie argumenten accepteert: val_arr, num en count, waarbij var_arr de array is, terwijl num en count van een geheel gegevenstype zijn. Het idee van de onderstaande code is om het grootste nummer te vinden en dit tijdelijk in de variabele max_val te houden totdat het naar het einde van de array wordt verschoven. Als een instructie is gebruikt om ervoor te zorgen dat de grootste waarde naar de juiste positie wordt verschoven en wordt verhinderd dat die positie wordt bijgewerkt met de volgende grootste waarde in de lijst. Het programma herhaalt de benadering van het vinden van de grootste waarde en deze naar het einde te schuiven totdat de lijst overeenkomt met de gesorteerde.

Code:

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 dit programma zijn de waarden handmatig toegewezen via de code. De var_arr is de array die de waarden bevat. In dit voorbeeld hebben we 9 waarden aan de array toegewezen. De waarden in de array worden doorgegeven aan de methode met de naam perform_heapsort. Zodra de waarden de methode hebben ingevoerd, wordt deze verwerkt en begint het programma de grootste waarde in de lijst te vinden. De maximale waarde in deze array is 252, dus deze wordt naar het einde van de array verschoven en dit proces wordt op alle waarden toegepast totdat de array in de gesorteerde array verandert. Nadat de array door het programma is gesorteerd, wordt de uitvoer in de uitvoer weergegeven.

Output:

Conclusie

Heapsort is een van de verschillende sorteeralgoritmen. De uiteindelijke uitvoer van dit algoritme is de gesorteerde lijst met de gegevens in oplopende volgorde. Omdat het proces wordt herhaald en elke keer dat alle waarden naar links worden verschoven om de maximale waarde van de lijst aan het einde van de array aan te passen, wordt het beschouwd als het minder efficiënte sorteeralgoritme. Deze manier van sorteren kan worden gebruikt in de toepassing die een klein aantal waarden moet verwerken.

Aanbevolen artikelen

Dit is een gids voor Heap Sort in Python. Hier bespreken we de inleiding tot Heap Sort in Python, hoe werkt Heap Sort in Python en de voorbeelden om Heap Sort in Python te implementeren. U kunt ook door onze andere voorgestelde artikelen gaan voor meer informatie-

  1. Wat is informatica?
  2. Wat is machinaal leren?
  3. Beveiliging van webapplicaties
  4. Python-functies
  5. Handleiding voor het sorteren van algoritmen in Python