Hur implementerar man Merge Sort i Python?



Här är en enkel och enkel handledning för att lära dig hur du använder Merge Sort och lära dig mer om dess algoritm och implementering i Python

Denna blogg är baserad på delnings- och erövringsstrategin. Merge Sort är en 'dela och erövra' -algoritm där problemet delas in i delproblem och sedan slås samman för att erövra lösningen. Den här bloggen på Merge Sortera in kommer att gå igenom nedanstående ämnen i detalj -

Vad är Merge Sort i Python?

Merge Sort baseras på delnings- och erövringsalgoritmen där ingångsmatrisen delas in i två halvor, sedan sorteras separat och slås samman för att nå lösningen. Funktionen sammanfoga () används för att slå samman det sorterade .





typecast dubbel till int java

Divide and Conquer-metoden

  • Arrayen delas i hälften och processen upprepas med varje halv tills varje hälft är av storlek 1 eller 0.
  • Matrisen i storlek 1 är trivialt sorterad.
  • Nu kombineras de två sorterade matriserna i en stor grupp. Och detta fortsätter tills alla element kombineras och matrisen sorteras.

Här är en visualisering av sammanslagningssortering för att rensa bilden åt dig

Inmatningsmatris = [3,1,4,1,5,9,2,6,5,4]



Slå ihop sortering | Edureka-bloggar | Edureka
Låt oss nu gå vidare till implementeringen.

Implementera Merge Sort i Python

def mergeSort (nlist): skriv ut ('Splitting', nlist) om len (nlist)> 1: mid = len (nlist) // 2 vänsterhalv = nlist [: mid] righthalf = nlist [mid:] mergeSort (vänsterhalv) mergeSort (righthalf) i = j = k = 0 medan jag

Produktion:

$ python main.py
('Splitting', [3, 1, 4, 1, 5, 9, 2, 6, 5, 4])
('Splitting', [3, 1, 4, 1, 5])
('Splitting', [3, 1])
('Splitting', [3])
('Sammanfoga', [3])
('Splitting', [1])
('Sammanfoga', [1])
('Sammanfoga', [1, 3])
('Splitting', [4, 1, 5])
('Splitting', [4])
('Sammanfoga', [4])
('Splitting', [1, 5])
('Splitting', [1])
('Sammanfoga', [1])
('Splitting', [5])
('Sammanfoga', [5])
('Sammanfoga', [1, 5])
('Sammanfoga', [1, 4, 5])
('Sammanfoga', [1, 1, 3, 4, 5])
('Splitting', [9, 2, 6, 5, 4])
('Splitting', [9, 2])
('Splitting', [9])
('Sammanfoga', [9])
('Splitting', [2])
('Sammanfoga', [2])
('Sammanfoga', [2, 9])
('Splitting', [6, 5, 4])
('Splitting', [6])
('Sammanfoga', [6])
('Splitting', [5, 4])
('Splitting', [5])
('Sammanfoga', [5])
('Splitting', [4])
('Sammanfoga', [4])
('Sammanfoga', [4, 5])
('Sammanfoga', [4, 5, 6])
('Sammanfoga', [2, 4, 5, 6, 9])
('Sammanfoga', [1, 1, 2, 3, 4, 4, 5, 5, 6, 9])
[1, 1, 2, 3, 4, 4, 5, 5, 6, 9]



mysql tutorial för nybörjare med exempel

Flödesschema för implementeringen av Merge Sort

Fördelar och användning av Merge Sort

De flesta av de andra algoritmerna fungerar dåligt med sekventiella datastrukturer som filer och länkade listor. I dessa strukturer tar åtkomst till ett slumpmässigt element linjär tid, inte regelbunden konstant tid. Och typen av sammanslagningssortering gör det enkelt och snabbt för sådana datastrukturer.En av de bästa funktionerna i sammanslagningssortering är dess låga antal jämförelser. Det gör O (n * log (n)) antal jämförelser, men den konstanta faktorn är bra jämfört med quicksort, vilket gör det användbart när jämförelsesfunktionen är en långsam operation.Dela-och-erövra-metoden för sammanslagningssortering gör det också bekvämt för parallell bearbetning.

Med detta kommer vi till slutet av denna blogg om ”Hur man implementerar Merge Sort i Python”. Jag hoppas att innehållet tillförde något värde till din kunskap i Python. För att få fördjupad kunskap om Python tillsammans med dess olika applikationer kan du registrera dig för live med 24/7 support och livstidsåtkomst.