Kako implementirati sortiranje stapanja u Pythonu?



Evo jednostavnog i jednostavnog vodiča kako naučiti kako koristiti Merge Sort i kako naučiti njegov algoritam i implementaciju u Pythonu

Ovaj se blog temelji na pristupu podijeli i osvoji. Spajanje sortiranja algoritam je 'podijeli i osvoji', gdje se problem dijeli na podprobleme, a zatim se spaja radi osvajanja rješenja. Ovaj blog na Merge Sortiraj u detaljno će vas provesti kroz donje teme -

Što je sortiranje stapanja u Pythonu?

Sortiranje stapanja temelji se na algoritmu podijeli i osvoji (Contents), gdje se ulazni niz podijeli na dvije polovice, zatim sortira zasebno i spoji natrag da bi se došlo do rješenja. Funkcija merge () koristi se za spajanje razvrstanih .





Pristup podijeli i osvoji

  • Niz se dijeli na pola i postupak se ponavlja sa svakom polovicom dok svaka polovica ne bude veličine 1 ili 0.
  • Niz veličine 1 trivijalno je sortiran.
  • Sada su dva sortirana niza kombinirana u jedan veliki niz. I to se nastavlja sve dok se svi elementi ne kombiniraju i niz ne sortira.

Ovdje je vizualizacija spajanja sortiranja da vam očisti sliku

Ulazni niz = [3,1,4,1,5,9,2,6,5,4]



Spajanje sortiraj | Blogovi Edureke | Edureka
Krenimo sada na provedbu.

kako sortirati niz u rastućem redoslijedu c ++

Implementacija sortiranja stapanja u Pythonu

def mergeSort (nlist): print ('Splitting', nlist) if len (nlist)> 1: mid = len (nlist) // 2 lefthalf = nlist [: mid] righthalf = nlist [mid:] mergeSort (lefthalf) mergeSort (desno) i = j = k = 0 dok je i

Izlaz:

$ python main.py
('Razdvajanje', [3, 1, 4, 1, 5, 9, 2, 6, 5, 4])
(„Razdvajanje“, [3, 1, 4, 1, 5])
(„Razdvajanje“, [3, 1])
(„Razdvajanje“, [3])
(„Spajanje“, [3])
(„Razdvajanje“, [1])
(„Spajanje“, [1])
(„Spajanje“, [1, 3])
(„Razdvajanje“, [4, 1, 5])
(„Podjela“, [4])
(„Spajanje“, [4])
(„Razdvajanje“, [1, 5])
(„Razdvajanje“, [1])
(„Spajanje“, [1])
(„Razdvajanje“, [5])
(„Spajanje“, [5])
(„Spajanje“, [1, 5])
(„Spajanje“, [1, 4, 5])
('Spajanje', [1, 1, 3, 4, 5])
(„Razdvajanje“, [9, 2, 6, 5, 4])
(„Razdvajanje“, [9, 2])
(„Razdvajanje“, [9])
(„Spajanje“, [9])
(„Razdvajanje“, [2])
(„Spajanje“, [2])
(„Spajanje“, [2, 9])
(„Razdvajanje“, [6, 5, 4])
(„Razdvajanje“, [6])
(„Spajanje“, [6])
(„Razdvajanje“, [5, 4])
(„Razdvajanje“, [5])
(„Spajanje“, [5])
(„Podjela“, [4])
(„Spajanje“, [4])
(„Spajanje“, [4, 5])
(„Spajanje“, [4, 5, 6])
(„Spajanje“, [2, 4, 5, 6, 9])
('Spajanje', [1, 1, 2, 3, 4, 4, 5, 5, 6, 9])
[1, 1, 2, 3, 4, 4, 5, 5, 6, 9]



ispis_r ()

Dijagram toka za implementaciju sortiranja stapanja

Prednosti i upotreba sortiranja spajanja

Većina ostalih algoritama ima lošu izvedbu sa sekvencijalnim strukturama podataka poput datoteka i povezanih popisa. U tim strukturama pristup slučajnom elementu traje linearno, a ne redovito konstantno vrijeme. A priroda vrste spajanja olakšava i brzi postupak za takve strukture podataka.Jedna od najboljih značajki sortiranja spajanjem je mali broj usporedbi. Čini O (n * log (n)) broj usporedbi, ali konstantni faktor je dobar u usporedbi s brzim sortiranjem, što ga čini korisnim kada je funkcija usporedbe spora operacija.Također, pristup podijeli i osvoji i spajanja čini pogodnim za paralelnu obradu.

Ovim smo došli do kraja ovog bloga na temu „Kako implementirati sortiranje stapanja u Pythonu“. Nadam se da je sadržaj dodao neku vrijednost vašem znanju u Pythonu. Da biste stekli detaljno znanje o Pythonu, zajedno s raznim aplikacijama, možete se prijaviti uživo s 24/7 podrškom i doživotnim pristupom.