Johdanto kasalajitteluun Pythonissa

Mikä tahansa ohjelmointikieli tarjoaa erilaisia ​​toimintoja ennalta määritettyjen toimintojen perusteella. Hyödyntämällä ennalta määritettyjä menetelmiä ja ohjelmointikielen tarjoamia ominaisuuksia voidaan kehittää monimutkainen sovellus. Kun puhumme luettelon arvojen muuntamisesta lajiteltuun muotoon, lähestymistapaa kutsutaan lajitteluun. Vaikka lajittelun lähtö on sama lajittelutavasta riippumatta, paras lähestymistapa varmistaa tietojen lajittelun tehokkuuden. Kun kyse on lajittelusta python-ohjelmointikielellä, meillä on sort () -menetelmä, joka voi yksinkertaisesti hyväksyä arvon ja lajitella sen nousevassa järjestyksessä. Tässä artikkelissa opimme kuinka lajitella taulukon tiedot nousevassa järjestyksessä kasalajittelua käyttämällä ja python-ohjelmointikieltä suorittamalla kasaan liittyvä koodi.

Kuinka Heap Sort toimii Pythonissa?

  • Ennen Pythonin toiminnan selittämistä on tärkeää ymmärtää mikä se on ja miten se eroaa muista lajittelualgoritmeista. Heapsort-ryhmää voidaan pitää lajittelumenetelmänä, jossa luettelon enimmäisarvo kohdataan ja siirretään ryhmän viimeiseksi ja prosessia jatketaan toistamalla, kunnes luettelo muunnetaan lajiteltuun luetteloon. Tapa, joka erottaa sen muista lajittelumenetelmistä, ei ole muuta kuin lähestymistapa, jota se noudattaa ryhmän kaikkien arvojen lajitteluun. Se koostuu rekursiivisesta prosessista, joka kestää kunnes taulukon arvot on järjestetty nousevassa järjestyksessä.
  • Ymmärrämme nyt, kuinka kasalajittelu toimii yksityiskohtaisesti esimerkin avulla. Oletetaan, että arr on taulukko, jolla on arvot kuten 9, 5, 2. Alussa taulukon arvoja ei ole järjestetty järjestäytyneellä tavalla, mutta kasalajittelun suorittamisen jälkeen se muuttuu nousevaan järjestykseen. Kun kasalajittelualgoritmia sovelletaan tähän taulukkoon, aivan ensimmäinen se tekee sen löytääksesi suurimman arvomme taulukossa. Koska 9 on suurin arvo, se siirretään luettelon viimeiseen hakemistoon ja kaikki muut arvot siirtyvät yhden askeleen vasemmalle, jotta luodaan tilaa suurimman arvon pitämiseksi. Kun 9 on siirretty viimeiseen hakemistoon tai taulukkoon arr, arvojen luettelo näyttää 5, 2, 9.
  • Nyt taulukkoa ei ole vielä lajiteltu, mikä osoittaa, että sama prosessi on toistettava uudelleen. Nyt kun etsitään suurin arvo käsittelemättömien arvojen luettelosta, 5 valitaan toiseksi suurimmaksi arvoksi ja siirretään toiseen viimeiseen indeksiin. Sen jälkeen kun 5 on siirretty toisessa viimeisessä asennossa, taulukko muuttuu lajiteltuksi taulukkoksi ja arvot järjestetään kokoonpanon nousevassa järjestyksessä kuten 2, 5, 9. Tällä tavalla kasalajittelu toimii. Tosiasiassa se identifioi maksimiarvon ja siirtää sen taulukon loppuun ja jatkaa saman prosessin suorittamista, kunnes taulukko muuttuu lajiteltuksi taulukkoksi.

Esimerkkejä Heap-lajittelun toteuttamisesta Pythonissa

Oppiaksemme kasaanoton käsite, ymmärrämme se todellisen esimerkin avulla. Toteutamme kasalajittelualgoritmin python-kielen avulla. Ohjelman kehittämiseksi käytämme for-silmukkaa toistamaan rekursiomekanismi ja käytämme olosuhteiden tarkistamista olosuhteiden tarkistamiseksi. Alla olevassa koodissa suoritus_heapsort on funktio, joka hyväksyy kolme argumenttia: val_arr, num ja count, missä var_arr on taulukko, kun taas num ja count ovat kokonaislukutietotyyppejä. Alla olevan koodin idea on löytää suurin lukumäärä ja pitää sitä väliaikaisesti max_val-muuttujassa, kunnes se siirtyy taulukon loppuun. Jos lauseketta on käytetty varmistamaan, että suurin arvo on siirtymässä oikeaan sijaintiin ja että kyseinen sijainti estyy päivittymästä luettelon seuraavalla suurimmalla arvolla. Ohjelma toistaa lähestymistavan löytää suurin arvo ja siirtää sitä loppuun, kunnes luettelo virittyy lajiteltuun arvoon.

Koodi:

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

Tässä ohjelmassa arvot on annettu manuaalisesti koodin kautta. Var_arr on taulukko, jolla on arvot. Tässä esimerkissä olemme antaneet taulukolle 9 arvoa. Taulukon arvot siirretään menetelmälle nimeltä perfor_heapsort. Kun arvot ovat syöttäneet menetelmän, se käsitellään ja ohjelma alkaa löytää suurimman arvon luettelosta. Tämän taulukon maksimiarvo on 252, joten se siirretään taulukon loppuun ja tätä prosessia sovelletaan kaikkiin arvoihin, kunnes taulukko muuttuu lajiteltuksi taulukkoksi. Kun ohjelma on lajitellut taulukon, lähtö näkyy ulostulossa.

lähtö:

johtopäätös

Heapsort on yksi monista lajittelualgoritmeista. Tämän algoritmin lopputulos on lajiteltu luettelo, jonka tiedot on järjestetty nousevassa järjestyksessä. Kun prosessi toistetaan ja joka kerta, kun kaikkia arvoja siirretään vasemmalle luettelon maksimiarvon säätämiseksi taulukon lopussa, sitä pidetään vähemmän tehokkaana lajittelualgoritmina. Tätä lajittelutapaa voidaan hyödyntää sovelluksessa, jonka on tarkoitus prosessoida pieni määrä arvoja.

Suositellut artikkelit

Tämä on opas Python-lajitteluun. Tässä keskustellaan johdannosta Python-lajitteluun Pythonissa, kuinka Heap Sort toimii Pythonissa ja esimerkkejä Heap-lajittelun toteuttamisesta Pythonissa. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme ja oppia lisää-

  1. Mikä on tietojenkäsittelytiede?
  2. Mikä on koneoppiminen?
  3. Verkkosovellusten suojaus
  4. Python-ominaisuudet
  5. Opas algoritmien lajitteluun Pythonissa