Kuinka yhdistää lajittelu Pythonissa?



Tässä on yksinkertainen ja helppo opetusohjelma yhdistämislajittelun käyttämiseen sekä sen algoritmiin ja toteutukseen Pythonissa

Tämä blogi perustuu jakamisen ja valloittamisen lähestymistapaan. Yhdistä lajittelu on 'jaa ja valloita' -algoritmi, jossa ongelma on jaettu alakysymyksiin ja yhdistetään sitten ratkaisun valloittamiseksi. Tämä blogi yhdistämisessä Lajittele opastaa sinut alla olevien aiheiden läpi yksityiskohtaisesti -

toteuta prioriteettijono c ++

Mikä on yhdistämislajittelu Pythonissa?

Yhdistä lajittelu perustuu jakamis- ja valloitusalgoritmiin, jossa tuloryhmä jaetaan kahteen puolikkaaseen, lajitellaan sitten erikseen ja yhdistetään takaisin ratkaisun saavuttamiseksi. Funktioiden yhdistämistä () käytetään lajiteltujen yhdistämiseen .





Divide and Conquer -lähestymistapa

  • Matriisi jaetaan kahtia ja prosessi toistetaan jokaisen puoliskon kanssa, kunnes kukin puolikas on kooltaan 1 tai 0.
  • Koko 1 on matalasti lajiteltu.
  • Nyt kaksi lajiteltua taulukkoa on yhdistetty yhdeksi suureksi ryhmäksi. Ja tätä jatketaan, kunnes kaikki elementit on yhdistetty ja taulukko on lajiteltu.

Tässä on yhdistämisen lajittelun visualisointi kuvan tyhjentämiseksi

Syöttötaulukko = [3,1,4,1,5,9,2,6,5,4]



Yhdistä lajittelu | Edureka-blogit | Edureka
Siirrytään nyt täytäntöönpanoon.

Yhdistämislajittelun toteuttaminen Pythonissa

def mergeSort (nlist): tulosta ('Spliting', nlist), jos len (nlist)> 1: mid = len (nlist) // 2 lefthalf = nlist [: mid] righthalf = nlist [mid:] mergeSort (vasen puoli) mergeSort (oikea puoli) i = j = k = 0, kun taas minä

Tuotos:

$ python main.py
(”Halkaisu”, [3, 1, 4, 1, 5, 9, 2, 6, 5, 4])
(”Halkaisu”, [3, 1, 4, 1, 5])
(”Halkaisu”, [3, 1])
(’Halkaisu’, [3])
(”Yhdistyminen”, [3])
(’Halkaisu’, [1])
(”Yhdistyminen”, [1])
(”Yhdistyminen”, [1, 3])
(’Halkaisu’, [4, 1, 5])
(”Halkaisu”, [4])
(”Yhdistyminen”, [4])
(’Halkaisu’, [1, 5])
(’Halkaisu’, [1])
(”Yhdistyminen”, [1])
(”Halkaisu”, [5])
(”Yhdistyminen”, [5])
(”Yhdistyminen”, [1, 5])
(”Yhdistyminen”, [1, 4, 5])
(”Yhdistyminen”, [1, 1, 3, 4, 5])
(’Halkaisu’, [9, 2, 6, 5, 4])
(”Halkaisu”, [9, 2])
(’Halkaisu’, [9])
(”Yhdistyminen”, [9])
(’Halkaisu’, [2])
(”Yhdistyminen”, [2])
(”Yhdistyminen”, [2, 9])
(”Halkaisu”, [6, 5, 4])
(”Halkaisu”, [6])
(”Yhdistyminen”, [6])
(’Halkaisu’, [5, 4])
(”Halkaisu”, [5])
(”Yhdistyminen”, [5])
(”Halkaisu”, [4])
(”Yhdistyminen”, [4])
(”Yhdistyminen”, [4, 5])
(”Yhdistyminen”, [4, 5, 6])
(”Yhdistyminen”, [2, 4, 5, 6, 9])
(”Yhdistyminen”, [1, 1, 2, 3, 4, 4, 5, 5, 6, 9])
[1, 1, 2, 3, 4, 4, 5, 5, 6, 9]



pinoa ja kasaa muistia java

Vuokaavio yhdistämisen lajittelun toteuttamiseksi

Yhdistämisen lajittelun edut ja käyttö

Suurin osa muista algoritmeista toimii huonosti peräkkäisten tietorakenteiden, kuten tiedostojen ja linkitettyjen luetteloiden, kanssa. Näissä rakenteissa satunnaiseen elementtiin pääsy vie lineaarista aikaa, ei säännöllistä vakioaikaa. Ja yhdistämislajittelun luonne tekee siitä helppoa ja nopeaa tällaisille tietorakenteille.Yksi yhdistämislajittelun parhaista ominaisuuksista on sen pieni vertailumäärä. Se tekee O (n * log (n)) vertailumäärän, mutta vakiokerroin on hyvä quicksortiin verrattuna, mikä tekee siitä hyödyllisen, kun vertailutoiminto on hidas operaatio.Yhdistämislajittelun jakamisen ja valloittamisen lähestymistapa tekee siitä myös kätevän rinnakkaiskäsittelyä varten.

Tämän myötä olemme päässeet tämän blogin loppuun 'Kuinka yhdistää lajittelu Pythonissa'. Toivon, että sisältö lisäsi lisäarvoa tietämykseesi Pythonissa. Saadaksesi syvällistä tietoa Pythonista sen eri sovellusten kanssa, voit ilmoittautua livenä 24/7 -tuella ja käyttöikällä.