Johdatus kuplalajitteluun Pythonissa

Kuplalajittelu on yksinkertainen ja looginen lajittelualgoritmi. Sen toimintaperiaate perustuu vierekkäisten elementtien rekursiiviseen vaihtamiseen, jos järjestys on väärä. Tässä aiheesta aiomme oppia Bubble Sort -sovelluksesta Pythonissa.

Kuplalajittelu, jota joskus kutsutaan myös uppoamislajikkeeksi, väreilylajikkeeksi.

Katsotaanpa sitä esimerkiksi:

Ensimmäinen ajo

( 6 1 4 3) -> ( 1 6 4 2): Tässä kaksi ensimmäistä elementtiä vaihdetaan, jos järjestys ei ole oikea.

(1 6 4 2) -> (1 4 6 2): Tässä kaksi seuraavaa elementtiä vaihdetaan, jos järjestys ei ole oikea.

(1 4 6 2 ) -> (1 4 2 6 ): Tässä kaksi seuraavaa elementtiä vaihdetaan, jos järjestys ei ole oikea.

Toinen ajo

( 1 4 2 6) -> ( 1 4 2 6): Tässä ensimmäisiä kahta elementtiä verrataan, mutta ei vaihdettu, koska järjestys on oikea.

(1 4 2 6) -> (1 2 4 6): Tässä kaksi seuraavaa elementtiä vaihdetaan, koska järjestys ei ollut oikea.

(1 2 4 6 ) -> (1 2 4 6 ): Tässä vertaillaan kahta viimeistä elementtiä, mutta ne eivät vaihtuneet järjestyksessä

Nyt tiedämme, että taulukko näyttää järjestäytyneeltä, mutta yksi ajo vaaditaan ilman vaihtoa, algoritmille tietääkseen, onko lajittelu tehty.

Kolmas ajo

( 1 2 4 6) -> ( 1 2 4 6): Ei vaihtoa kahdessa ensimmäisessä elementissä.

(1 2 4 6) -> (1 2 4 6): Ei vaihtoa seuraavissa kahdessa elementissä.

(1 2 4 6 ) -> (1 2 4 6 ): Ei vaihtoa kahdessa viimeisessä elementissä.

Koska vaihtosopimuksia ei tapahtunut missään vaiheessa, nyt algoritmi ymmärtää, että lajittelu on täydellinen.

Kuplalajittelu on saanut nimensä, koska elementit siirtyvät oikeassa järjestyksessä, joka on kuin pintaan nousevat kuplat.

Kuplalajittelu Python-kielellä

Katsotaanpa nyt kuplalajittelun looginen toteutus pythonin kautta. Python on nykyään hyvin käytetty kieli. Ymmärtäminen pythonin kautta antaa sinulle varmasti kyvyn kirjoittaa se myös muille kielille.

Python-koodi

def bubble_Sort(arr):
m = len(arr)
# Traverse through all the array elements
for u in range(m):
for v in range(0, mu-1):
# traverse the array from 0 to mu-1
# Swap if the element is greater than adjacent next one
if arr(v) > arr(v+1) :
arr(v), arr(v+1) = arr(v+1), arr(v)

Jos haluat tulostaa taulukon kuplalajittelulajin jälkeen, tarvitset seuraavan koodin:

for i in range(len(arr)):
print("%d" %arr(i)),
Here arr will be your array.

Python-koodin selitys

Tässä m on taulukon pituus. Kaksi silmukoita varten pitävät voimassa todellisen maapallon logian, jossa “u” edustaa ensimmäistä elementtiä ja “v” tarkoittaa toista, jota ensimmäistä elementtiä on verrattava vaihdettaessa, jos lajittelujärjestys molempien välillä ei ole oikea.

”Arr (v)> arr (v + 1)” tarkoittaa peräkkäisten elementtien vertailua, jos ensimmäinen elementti on suurempi kuin toinen elementti, vaihtooperaatio suoritetaan seuraavalla lausekkeella:

Se on “arr (v), arr (v + 1) = arr (v + 1), arr (v)”.

Tätä vaihtooperaatiota kutsutaan swapiksi. Hyvä osa ei ole väliaikainen muisti, jota tarvitaan tällaiseen vaihtotoimintaan.

“U” edustaa jokaisen ajon silmukkaa, kun taas “v” edustaa kunkin vaiheen vaiheita. Edellä olevan osan esimerkkiin voidaan viitata.

Suoritettuaan kuplalajittelun voidaan nähdä lajiteltu taulukko, jonka koodi on mainittu alla:

for i in range(len(arr)):
print ("%d" %arr(i)),

Katsotaanpa miten se toimii Python IDE: ssä syvemmälle ymmärtämistä varten:

lähtö:

Kuplalajittelusta on muutama tosiasia, jotka kaikkien tulisi tietää ennen sen käyttöönottoa:

  1. Kuplalajittelua pidetään usein ei-tehokkaana lajittelumenetelmänä. Koska sen on vaihdettava esineitä, kunnes sen lopullinen sijainti on tiedossa. Tämä kaikki johtaa toiminnan tuhlaamiseen ja siten erittäin kalliiksi. Tämä algoritmi kulkee jokaisen elementin läpi, missä lajittelu vaaditaan tai ei vaadita. Kun ajo on ohi ilman vaihtoa, kuplalajittelu katsotaan suoritetuksi.
  2. Tämä on yksinkertaisin kaikista tietorakenteista, jokaiselle aloittelijalle se antaa hyvän luottamuksen. Se on helppo rakentaa ja ymmärtää.
  3. Se vie paljon aikaa ja muistia.
  4. Tätä pidetään vakaana algoritmina, koska se säilyttää elementtien suhteellisen järjestyksen.
  5. Pidetään hyvänä pienelle ryhmälle / listalle. On kuitenkin huono idea käyttää sitä pitkään.

johtopäätös

Edellä mainitun kuplalajittelun sisällön läpi olisi voinut saada kristallinkirkkaan käsityksen tästä pythonille erikoistuneesta lajittelualgoritmista. Kun kuplalajittelulogiikka on mukava, toisen tietorakenteiden ymmärtäminen on sitten helpompaa. Looginen lähestymistapa on ainoa tapa menestyä tietorakenteen alalla. Tien tulisi olla ymmärtää ensin tietorakennealgoritmin logiikka jokaisessa vaiheessa ja sitten kohdistaa sen koodi Pythonin kautta tai jollain muulla kielellä.

Suositellut artikkelit

Tämä on opas kuplalajitteluun Pythonissa. Tässä keskustellaan kuplalajittelun loogisesta toteutuksesta python-koodin läpi selityksineen. Voit myös tarkastella seuraavaa artikkelia saadaksesi lisätietoja -

  1. Silmukoita Pythonissa
  2. Python-tiedostot
  3. Palindromi Pythonissa
  4. 3d-taulukot Pythonissa
  5. Python-ominaisuudet
  6. Vaihtaminen PHP: ssä
  7. 3D-taulukot C ++: ssa
  8. Palindromi C ++: ssa
  9. Palindrome JavaScript-muodossa
  10. Kuinka taulukot ja luettelot toimivat Pythonissa?