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?
- Divide and Conquer-metoden
- Implementera Merge Sort i Python
- Flödesschema för implementering av Merge Sort
- Fördelar och användning
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]
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 jagProduktion:
$ 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 exempelFlö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.