Sunteți pe pagina 1din 3

Labprator 14 – Algoritmi si structure de date

Laborator 14

Sortarea rapidă (Quick Sort)

Sortarea rapidă (sau Quick Sort) este un algoritm de sortare recunoscut


pentru eficienţă sa chiar şi în cazul unui volum mare de date ce trebuie ordonate.

Algortimul de sortare rapidă funcţionează astfel:


Pasul 1. Se alege un element din şir numit pivot (de obicei pivotul este
ales la mijlocul sirului);
Pasul 2. Se reordonează şirul astfel încât toate elementele care deţin o
valoare mai mică decât valoarea elementului pivot se vor
poziţiona înaintea elementului pivot, iar elementele cu o
valoare mai mare decât valoarea elementului pivot se vor
poziţiona după elementul pivot
Pasul 3. Se sortează recursiv cele două părţi ale şirului (Un subşir de
dimensiune 0 sau 1 se consideră sortat).

Se presupune existenţa unui vector de 9 numere întregi astfel:

1 14 6 19 7 11 3 7 2

şi se doreşte sortarea elementelor acestui vector în ordine crescătoare.

Algoritmul de sortare rapidă în acest caz va funcţiona astfel:


 Se alege elementul pivot ca fiind mijlocul segmentului;

1 12 5 26 7 14 3 7 2

 Se reordonează şirul astfel:


o Se inversează 12 cu 2;

1 2 5 26 7 14 3 7 12

o Se inversează 26 cu 7;

1 2 5 7 7 14 3 26 12
Labprator 14 – Algoritmi si structure de date

o Se inversează 3 cu 7;

1 2 5 7 3 14 7 26 12

 Se alege elementul pivot pentru prima jumătate de interval;

1 2 5 7 3

 Se reordonează şirul astfel:


o Se inversează 5 cu 3;

1 2 3 7 5

 Se alege elementul pivot pentru prima jumătate de interval;

1 2 3

 Elementele şirul se află în ordinea corectă;


 Se alege elementul pivot pentru cealaltă jumătate de interval;

7 5
 Se reordonează şirul astfel:
o Se inversează 7 cu 5;

5 7

 Prima jumătate a şirului iniţial este ordonată corect;

1 2 3 5 7

 Se alege elementul pivot pentru a doua jumătate a intervalului iniţial;


14 7 26 12

 Se reordonează şirul astfel:


o Se inversează 14 cu 7;

7 14 26 12
Labprator 14 – Algoritmi si structure de date

 Se alege elementul pivot pentru prima jumătate de interval;

7 14

 Elementele din şir se află în ordinea corectă;


 Se alege elementul pivot pentru cealaltă jumătate de interval;

26 12
 Se reordonează şirul astfel:
o Se inversează 26 cu 12;

12 26
 Se obţine şirul

7 14 12 26

 Se alege elementul pivot

7 14 12 26
 Se reordonează şirul astfel:
o Se inversează 14 cu 12;

7 12 14 26

 A doua jumătate a şirului iniţial este ordonată corect;

7 12 14 26

• Se obţine şirul ordonat

1 2 3 5 7 7 12 14 26