Sunteți pe pagina 1din 10

Sortarea prin interclasare

Sortarea prin interclasare

Algoritmul de interclasare se executa pe doi vectori ordonati dupa acelasi criteriu ,pentru a obtine un al treilea vector,care sa contina elementele primilor doi vectori, ordonate dupa acelasi criteriu.Algoritmul de sortare prin interclasare se bazeaza pe observatia ca orice vector care contine un singur element este un vector sortat.Algoritmul de interclasare se poate folosi pentru sortarea unui vector cu ajutorul metodei divide et impera, astfel:

Sortarea prin interclasare

PAS1.Se

descompune problema in subprobleme similare,prin impartirea vectorului in doi vectori ,avand multimea indicilor [s,m] si [m+1,d],unde m este indicele din mijlocul intervalului m=(s+d)/2.

PAS2.Daca

subvectorul contine un singur element,atunci se considera sortat (corespunde cazului de baza); astfel se continua descompunerea lui in subvectori care au multimea indicilor [s,m], si multimea indicilor [m+1, d].

PAS3.Se combina solutiile celor doua subprobleme ,prin interclasarea celor doi vectori sortati,obtinandu-se un vector sortat. Vectorul care se sorteaza este x.Prin subprogramul interclaseaza( ) se realizeaza combinarea solutiilor prin interclasarea subvectorului x,care are multimea indicilor [s,m] ,cu subvectorul x,care are multimea indicilor [m+1,d],in vectorul auxiliar v.Vectorul v se copiaza in vectorul x,care are multimea indicilor [s,d].

Sortarea prin interclasare

Complexitatea algoritmului de sortare prin interclasare

Pentru divizarea problemei in subprobleme se calculeaza mijlocul intervalului de indici si O(D(n))=O(1).Pentru combinarea solutiilor se executa intreclasarea a doi vectori O(D(n))=O(n).Timpul de executie este T(n)=2xT(n/2).Considerand ca n=2k, rezulta: T(n)=T(2 k)+2 k =2x(T(2 k-1)+2 k-1)+2 k =2xT(2 k1)+2 k +2 k ==2x2x(T(2 k-2)+2 k-2)+2 k +2 k.=2 2x(T(2 k-2)+2 k-2)+2 k +2 k +2 k =kx2 k =log2nxn. Ordinul de complexitate al algoritmului este O(nxlog2n).

Observatie
In

comparatie cu algoritmii de sortare prin metoda selectiei directe si prin metoda bulelor , care au ordinal de complexitate O(n2), algoritmii de sortare care folosesc strategia divide et impera sunt mai eficienti .

Clasa:a XI-a D Profesor coordonator:Iordachi Lizeta

Colegiul National Vasile Alecsandri, Galati

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