Cum se implementează Sortare Merge în C ++ cu exemple



Acest articol vă va oferi cunoștințe detaliate și cuprinzătoare despre Merge Sort în C ++, cum funcționează cu exemple.

Care este tipul de îmbinare? Merge sort este un algoritm de sortare bazat pe comparație, care aparține categoriei de divizare și cucerire. Sortarea Merge este utilizată pentru a sorta o matrice bazată pe strategia de divizare și cucerire, care va fi tratată pe scurt în această postare împreună cu alte concepte, cum ar fi algoritmul său, cu un exemplu. Vom analiza, de asemenea, complexitatea timpului sortării de îmbinare în C ++

Următoarele indicații vor fi tratate în acest articol,





Continuăm cu acest articol despre Merge Sort în C ++

Divizați și cuceriți algoritmul

Dacă sunteți deja familiarizați cu modul în care funcționează quicksort, este posibil să fiți conștienți de strategia de divizare și cucerire. Împărțiți și cuceriți implică trei pași majori. Pentru a înțelege acești pași, să luăm în considerare o matrice Hello [] care are indexul de început ‘a’ și indexul de sfârșit ‘n’, prin urmare putem scrie matricea noastră în felul următor Hello [a & hellip..n]



Împărțire - Mutația principală sau pasul principal al împărțirii și cuceririi constă în împărțirea problemei date în sub-probleme sau sub-părți. Problema este că problemele secundare ar trebui să fie similare cu problema inițială și să aibă dimensiuni mai mici. În cazul nostru vom împărți matricea noastră în 2 jumătăți [a & hellip.m] [m + 1 & hellip..n] m se află în mijlocul a și n index

Conquer- Odată ce am terminat împărțirea problemei noastre în subprobleme. Rezolvăm aceste subprobleme recursiv.

Combinați - În acest pas, combinăm toate soluțiile subproblemelor noastre într-un mod adecvat. Cu alte cuvinte, combinăm 2 matrice sortate diferite pentru a forma o matrice sortată. Acolo avem matricea sortată.



Continuăm cu acest articol despre Merge Sort în C ++

încheierea unui program în java

Înțelegerea algoritmului Merge Sort cu un exemplu

În acest moment, știm ce abordare va fi utilizată de sortarea de îmbinare. Deci, să luăm în considerare un exemplu și să parcurgem fiecare pas de la Hello [] nesortat la o matrice sortată.
Exemplu- Bună ziua [10, 3, 7, 1, 15, 14, 9, 22]

Merge-sort-in-C++

În imaginea de mai sus, am considerat o matrice nesortată și am folosit sortarea merge pentru a obține o matrice sortată. Acum, să analizăm fiecare pas și să înțelegem întregul algoritm

1. În primul rând, am considerat o matrice Bună ziua [10, 3, 7, 1, 15, 14, 9, 22] în această matrice există 8 elemente în total

2. După cum am văzut mai devreme, fuzionarea folosește abordarea divizare și cucerire pentru a sorta elementele. Am găsit m care se află în mijlocul matricei noastre și ne-am împărțit matricea de mijloc unde m = (a - n) / 2 'a' este indicele elementului cel mai la stânga și n este indicele elementului cel mai la dreapta al matricei noastre .

3. După prima diviziune, avem 2 părți formate din 4 elemente fiecare. Să ne uităm la prima jumătate [10, 3, 7, 1].

4. Împărțim [10, 3, 7, 1] în 2 părți [10, 3] și [7, 1]. După aceea le împărțim în continuare în [10], [3], [7], [1]. Nu este posibilă divizarea ulterioară, deoarece nu putem calcula m. o listă care conține un singur element este întotdeauna considerată sortată.

5. Cum are loc fuziunea? Să aflăm. Primele [10] și [3] sunt comparate și combinate în ordine crescătoare [3, 10] în același mod în care obținem [1, 7]

6. După aceea, comparăm [3, 10] și [1, 7]. Odată comparate, le îmbinăm în ordine crescătoare și obținem [1, 3, 7, 10].

7. [15, 14, 9, 2] este, de asemenea, divizat și combinat într-un mod similar pentru a forma [9, 14, 15, 22].

8. În ultimul pas comparăm și combinăm [15, 14, 9, 2] [9, 14, 15, 22] pentru a ne oferi matricea sortatăadică [1, 3, 7, 9, 10, 14, 15, 22].

Continuăm cu acest articol despre Merge Sort în C ++

cum să declarați o serie de obiecte în java

Pseudocod pentru sortare Merge

Începeți dacă sunteți lăsat

Funcția mergeSort () se numește recursiv pentru a împărți matricea noastră până când devine un singur element și funcția merge () este utilizată pentru a îmbina matricile sortate.

Continuăm cu acest articol despre Merge Sort în C ++

Mergeți programul de sortare în C ++

. Lastindex) {if (Firstindexsize int Bună ziua [size], i cout<<'Enter the elements of the array one by one:n' for(i=0 i>Hello [i] cout mergeSort (Hello, 0, size - 1)<<'The Sorted List isn' for(i=0 i

Ieșire-

Continuăm cu acest articol despre Merge Sort în C ++

Complexitatea timpului

Complexitatea timpului este un aspect important care trebuie luat în considerare atunci când vorbim despre algoritmi. Sortarea Merge este considerată a avea o mare complexitate temporală în comparație cu alți algoritmi de sortare.

Timp de rulare în cel mai rău caz - O (n jurnal n)
Timp de rulare cel mai bun caz - O (n log n)
Timp mediu de rulare- O (n jurnal n)

Cu aceasta, ajungem la sfârșitul acestui articol Merge Sort în C ++. Dacă doriți să aflați mai multe, consultați de Edureka, o companie de învățare online de încredere. Cursul de formare și certificare Java J2EE și SOA Edureka este conceput pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate Java, împreună cu diverse cadre Java, cum ar fi Hibernate & Spring.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui blog și vă vom contacta cât mai curând posibil.