Sunteți pe pagina 1din 14

MERGESORT

PROGRAM REALIZAT ÎN LIMBAJUL DE PROGRAMARE C++


• Merge Sort este unul dintre cei mai populari algoritmi de sortare care se
bazează pe principiul algoritmului Divide and Conquer .
• Aici, o problemă este împărțită în mai multe sub-probleme. Fiecare
subproblemă este rezolvată individual. În cele din urmă, subproblemele sunt
combinate pentru a forma soluția finală.
• Folosind tehnica Divide and Conquer , împărțim o problemă în subprobleme.
Când soluția fiecărei subprobleme este gata, „combinăm” rezultatele din
subprobleme pentru a rezolva problema principală.
Vom lua ca exemplu următorul șir de numere, care se va
împerți în două părți.
Acestea se vor împărți la rândul lor, fiecare în două părți, până când fiecare
parte va avea un singur element.
Acum când fiecare parte are câte un singur element, urmează să aplicăm
funcția de îmbinare, care combină șirurile sortate în șiruri mai mari, până când
întregul șir este îmbinat.
1. 2.
Cele două șiruri sunt sortate astfel:
5 6 12 1 9 10

5 6 12 1 9 10 1

5 6 12 1 9 10 1 5

5 6 12 1 9 10 1 5 6

5 6 12 1 9 10 1 5 6 9

5 6 12 1 9 10 1 5 6 9 10

5 6 12 1 9 10 1 5 6 9 10 12
PROGRAMUL
SUBPROGRAMUL SORTARE

• Declarația variabilelor
• Declarăm doi vectori în care vom copia cele două
părți din șirul care urmează să fie sortat.
• Sortarea celor două șiruri se face în felul următor:
dacă numărul de pe poziția i din șirul x e mai mic
decât cel de pe poziția j din șirul y, se copiază
numărul în v pe poziția k și i crește, altfel, se copiază
numărul de pe pozița j din y pe poziția k din v

S-ar putea să vă placă și