Sissejuhatus mullide sortimisse Pythonis

Mullide sortimine on lihtne ja loogiline sortimisalgoritm. Selle tööpõhimõte põhineb külgnevate elementide rekursiivsel vahetamisel, kui järjekord on vale. Selles teemas õpime Pythonis Bubble Sortimise kohta.

Mullide sortimist nimetatakse mõnikord ka vajutamise sorteerimiseks, rippimiseks.

Vaatame seda näite kaudu:

Esimene jooks

( 6 1 4 3) -> ( 1 6 4 2): Siin vahetatakse kaks esimest elementi, kui järjekord pole õige.

(1 6 4 2) -> (1 4 6 2): Siin vahetatakse kaks järgmist elementi, kui järjekord pole õige.

(1 4 6 2 ) -> (1 4 2 6 ): Siin vahetatakse kaks järgmist elementi, kui järjekord pole õige.

Teine jooks

( 1 4 2 6) -> ( 1 4 2 6): siin võrreldakse kahte esimest elementi, kuid need ei vahetunud, kuna järjekord on õige.

(1 4 2 6) -> (1 2 4 6): Siin vahetatakse järgmised kaks elementi, kuna järjekord polnud õige.

(1 2 4 6 ) -> (1 2 4 6 ): siin võrreldakse kahte viimast elementi, kuid need ei vahetunud nii, nagu järjekord on

Nüüd teame, et massiiv näeb välja sorteeritud, kuid algoritmile on vaja ühte käiku ilma vahetuseta, et teada saada, kas sortimine toimub.

Kolmas jooks

( 1 2 4 6) -> ( 1 2 4 6): kahes elemendis pole vahetust.

(1 2 4 6) -> (1 2 4 6): kahes järgmises elemendis vahetust ei toimu.

(1 2 4 6 ) -> (1 2 4 6 ): kahe viimase elemendi puhul vahetust ei toimu.

Kuna üheski etapis vahetusi ei toimunud, saab algoritm aru, et sortimine on täiuslik.

Mullide sorteerimine on saanud oma nime, kuna elemendid liiguvad üles õiges järjekorras, mis on nagu pinnale tõusevad mullid.

Mullide sortimine Pythoni keeles

Vaatame nüüd mullide sortimise loogilist rakendamist läbi pütoni. Python on tänapäeval väga laialdaselt kasutatav keel. Selle mõistmine pythoni kaudu annab teile kindlasti enesekindluse, et oskate seda kirjutada ka kõigis teistes keeltes.

Pythoni kood

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)

Massiivi printimiseks pärast mullide sortimist vajate järgmist koodi:

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

Pythoni koodi selgitus

“M” on siin massiivi pikkus. Kaks silmuste jaoks hoiavad tegelikku maapinna loogikat, kus “u” tähistab esimest elementi ja “v” tähistab teist, millega esimest elementi tuleb vahetamiseks võrrelda, kui sortimisjärjestus mõlema vahel pole õige.

“Arr (v)> arr (v + 1)” - see tähistab järjestikuste elementide võrdlust, kui esimene element on suurem kui teine ​​element, toimub vahetusoperatsioon järgmise avaldise abil:

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

Seda vahetusoperatsiooni nimetatakse vahetustehinguks. Hea osa pole ajutine mälu, mis on vajalik sellise vahetustehingu jaoks.

“U” tähistab iga raja silmust, “v” tähistab iga etapi etappe. Võib osutada ülaltoodud jaotise näitele.

Pärast mullide sortimist on võimalik näha sorteeritud massiivi, mille kood on toodud allpool:

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

Vaatame põhjalikumalt, kuidas see Python IDE-s käitub:

Väljund:

Mullide sortimise kohta on mõned faktid, mida kõik peaksid enne selle rakendamist teadma:

  1. Mullide sortimist peetakse sageli ebaefektiivseks sortimismeetodiks. Kuna ta peab kaupa vahetama, kuni selle lõplik asukoht on teada. See kõik põhjustab toimingute raiskamist ja on seega väga kulukas. See algoritm läbib kõiki elemente, kus sortimine on vajalik või mitte. Kui raja läbib ilma vahetusteta, loetakse mullide sortimine lõpetatuks.
  2. See on kõigi andmestruktuuride seas kõige lihtsam, igale algajale annab see hea enesekindluse. Seda on lihtne üles ehitada ja aru saada.
  3. See võtab palju aega ja mälu.
  4. Seda peetakse stabiilseks algoritmiks, kuna see säilitab elementide suhtelise järjekorra.
  5. Peetakse heaks väikese massiivi / nimekirja jaoks. Siiski on halb mõte seda pikkadeks kasutada.

Järeldus

Ülaltoodud mullide sortimise sisu kaudu oleks võinud saada kristallselge arusaamise sellest pythonile spetsialiseerunud sortimisalgoritmist. Kui keegi saab mullide sortimise loogikaga rahul olla, on muude andmestruktuuride komplekti mõistmine lihtsam. Loogiline lähenemine on ainus viis silma paista andmestruktuuri valdkonnas. Kõigepealt tuleks aru saada andmestruktuuri algoritmi loogikast igas etapis ja seejärel suunata selle kood Pythoni kaudu või mõnes muus keeles.

Soovitatavad artiklid

See on juhend Bubble Sortimise kohta Pythonis. Siin käsitleme mullide sortimise loogilist rakendamist python-koodi kaudu koos selgitusega. Lisateabe saamiseks võite vaadata ka järgmist artiklit -

  1. Silmused Pythonis
  2. Pythoni failioperatsioonid
  3. Palindroom Pythonis
  4. 3d massiivid Pythonis
  5. Pythoni omadused
  6. Vahetamine PHP-s
  7. 3D-massiivid C ++ -s
  8. Palindroom C ++
  9. Palindroom JavaScriptis
  10. Kuidas massiivid ja loendid Pythonis töötavad?

Kategooria: