Algoritmul de sortare prin interclasare se bazeaz pe
urmtoarea idee: pentru a sorta un vector cu n elemente l mprim n doi vectori care, odat sortai, se interclaseaz. Conform strategiei Divide et Impera, problema este descompus n alte dou subprobleme de acelasi tip si, dup rezolvarea lor, rezultatele se combin (n particular se interclaseaz). Descompunerea unui vector n ali doi vectori care urmeaz a fi sortai are loc pn cnd avem de sortat vectori de una sau dou componente.
38 27 43 3
82 9
38 27 43 3
10
82 9
10
38 27
43 3
82 9
10
27 38
82
10
10 82
43
27 38 43
Algoritm descris n pseudocod:
Sort(p,q,A); dac A[p]>A[q] atunci interschimba A[p]A[q] sfSort Interc(p,q,m,A) ip;jm+1;k0; ct timp i<=m si j<=q execut dac A[i]<A[j] atunci kk+1;B[k] A[i];ii+1 altfel kk+1;B[k] A[j];jj+1; sfdac sfct timp
ct timp i<=m execut
kk+1 B[k] A[i] ii+1 sfct timp ct timp j<=q execut kk+1 B[k] A[j];jj+1 sfct timp pentru ip,q execut A[i] B[i] sfpentru sfinterc Divimp(p,q,A) dac q-p<=1 atunci Sort(p,q,A) altfelDivimp(p,m,A)Divimp(m+1,q,A) Interc(p,q,m,A) sfdac sfDivimp