Uvod u sortu gomile u Pythonu

Bilo koji od programskih jezika pruža različite funkcije zahvaljujući unaprijed definiranim funkcijama. Korištenjem unaprijed definiranih metoda i značajki koje nudi programski jezik, može se razviti složena aplikacija. Kada govorimo o pretvaranju vrijednosti popisa u razvrstani oblik, pristup se naziva sortiranje. Iako je izlaz sortiranja isti bez obzira na pristup sortiranju, najbolji pristup osigurava učinkovitost sortiranja podataka. Kada je riječ o razvrstavanju pomoću programskog jezika python, imamo metodu (() koja jednostavno može prihvatiti vrijednost i sortirati je uzlaznim redoslijedom. U ovom ćemo članku naučiti kako sortirati podatke niza uzlaznim redoslijedom pomoću sortiranja heapom, a upotrebljavat ćemo i programski jezik python za izvođenje kôda velike količine.

Kako Heap Sort djeluje u Pythonu?

  • Prije objašnjenja rada Pythona, važno je shvatiti što je zapravo i kako se razlikuje od ostalih algoritama za razvrstavanje. Heapsort se može smatrati pristupom razvrstavanja u kojem se maksimalna vrijednost s popisa susreće i prebacuje na posljednji niz, a postupak se ponavlja pri ponavljanju dok se popis ne transformira u razvrstani popis. način na koji se to razlikuje od ostalih metoda sortiranja nije ništa drugo do samo pristup koji slijedi kako bi se sortirali sve vrijednosti polja. Sastoji se od rekurzivnog procesa koji traje sve dok se vrijednosti u nizu ne porede po rastućem redoslijedu.
  • Sada ćemo razumjeti kako vrsta hrpe djeluje u detalje pomoću primjera. Pretpostavimo da je arr niz koji sadrži vrijednosti poput 9, 5, 2. U početku se vrijednosti polja ne poredaju razvrstano, ali nakon izvođenja heap sortiranja pretvarat će se u uzlazni redoslijed. Kad se algoritam sortiranja u hrpi primijeni na ovaj niz, prva stvar će to učiniti kako bi pronašla našu najveću vrijednost u polju. Kako je 9 najveća vrijednost, bit će premještena na posljednji indeks popisa, a sve ostale vrijednosti pomaknut će se jedan korak lijevo kako bi se stvorio prostor za držanje najveće vrijednosti. Nakon što se 9 pomakne na zadnji indeks ili niz polja, popis vrijednosti izgledat će 5, 2, 9.
  • Sada još uvijek niz nije sortiran što ukazuje da se isti postupak mora ponoviti. Sada, dok pronađemo najveću vrijednost s popisa neobrađenih vrijednosti, 5 će biti odabrana kao druga najveća vrijednost i bit će premještena u drugi zadnji indeks. Nakon pomicanja 5 na drugom zadnjem mjestu, polje će se pretvoriti u razvrstani niz, a vrijednosti će biti raspoređene u uzlaznom redoslijedu kao 2, 5, 9. To radi na način na koji hrpa radi. U stvarnom smislu, on identificira maksimalnu vrijednost i premješta ga na kraj matrice i nastavlja izvoditi isti postupak dok se matrica ne pretvori u razvrstani niz.

Primjeri za implementaciju sortiranja heap u Python

Da bismo naučili koncept gomile šuma, razumjet ćemo to pomoću stvarnog primjera. Primjenjivat ćemo algoritam sortiranja u hrpi koristeći jezik python. Za razvoj programa koristit ćemo petlju for da dovedemo mehanizam rekurzije i koristit ćemo ako provjere uvjeta provjeriti uvjete. U donjem kôdu perform_heapsort je funkcija koja prihvaća tri argumenta: val_arr, num i count, gdje je var_arr niz, a num i count su cijeli broj podataka. Ideja donjeg koda je pronaći najveći broj i privremeno ga zadržati u max_val varijabli dok se ne pomakne na kraj matrice. Ako se izjava koristi da bi se osiguralo da se najveća vrijednost prebacuje na odgovarajući položaj i da se ta pozicija blokira od ažuriranja za sljedeću najveću vrijednost na popisu. Program će ponoviti pristup pronalaženju najveće vrijednosti i premještati ga do kraja dok se popis ne uredi u razvrstani.

Kodirati:

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)),

U ovom programu vrijednosti su dodijeljene ručno putem koda. Var_arr je niz koji sadrži vrijednosti. U ovom primjeru polju smo dodijelili 9 vrijednosti. Vrijednosti u polju će se proslijediti metodi pod nazivom perform_heapsort. Nakon što vrijednosti uđu u metodu, bit će obrađena i program će započeti pronalaženje najveće vrijednosti s popisa. Maksimalna vrijednost u ovom polju je 252, tako da će se pomaknuti na kraj matrice i taj će se postupak primijeniti na sve vrijednosti dok se matrica ne pretvori u poredani niz. Nakon što je niz sortiran od strane programa, izlaz će se prikazati u izlazu.

Izlaz:

Zaključak

Heapsort je jedan od različitih algoritama za razvrstavanje. Eventualni izlaz ovog algoritma je sortirani popis koji ima podatke poredane uzlaznim redoslijedom. Kako se postupak ponavlja i svaki put kad se sve vrijednosti pomaknu ulijevo za prilagođavanje maksimalne vrijednosti popisa na kraju polja, smatra se manje učinkovitim algoritmom sortiranja. Ovakav pristup razvrstavanju može se koristiti u aplikaciji koja treba obraditi mali broj vrijednosti.

Preporučeni članci

Ovo je vodič za Heap Sort in Python. Ovdje smo raspravljali o uvodu u Heap Sorting u Pythonu, kako funkcionira Heap Sorting u Python-u i primjerima za implementaciju Sort Heap u Python-u. Možete i proći kroz naše druge predložene članke da biste saznali više -

  1. Što je računalna znanost?
  2. Što je strojno učenje?
  3. Sigurnost web aplikacija
  4. Značajke Pythona
  5. Vodič za sortiranje algoritama u Pythonu

Kategorija: