Documente Academic
Documente Profesional
Documente Cultură
Algoritmi de sortare
Capitolul 13. Sortare prin selectie
Ideea algoritmului este: gaseste cel mai mic element si muta-l in prima pozitie
prin interschimbarea cu elementul de pe prima pozitie si repeta procedeul pentru
elementele listei de indici 2, 3, ..., N.
Algoritm de sortare prin selectie (varianta iterativa): Se dau K1, K2, ..., KN.
for i = 1, N-1
Determina indexul celui mai mic element dintre Ki, Ki+1, ..., KN.
Fie index_mic acesta.
if i index_min then Ki Kindex_mic
endif
endfor
Algoritm de sortare prin selectie (varianta recursiva): Se dau K1, K2, ..., KN.
Selectie (K, prim, ultim) /* Sorteaza elementele Kprim, ..., Kultim. Apelarea
initiala este pentru prim = 1 si ultim =N*/
if ( prim < ultim) then
Determina indexul celui mai mic element dintre Kprim, Kprim+1, ..., Kultim.
Fie index_mic acesta.
if prim index_min then Kprim Kindex_mic
endif
call Selectie (K, prim +1, ultim)
endif
Analiza algoritmului: Operatia principala care se efectueaza este comparatia
dintre elementele listei. Acest algoritm prezinta o singura clasa de valori de intrare
posibile, numarul de comparatii efectuate fiind acelasi indiferent de lista de intrare.
Observati ce numarul de comparatii necesar determinarii celui mai mic element intr-
un sir cu n elemente este n-1 si deci relatia de recurenta care ne da acest numar de
comparatii efectuate de algoritmul descris mai sus este CN = N-1 + CN-1, daca N > 1 si
N 1
1
C1 = 0 deci CN = i N ( N 1) deci complexitatea algoritmul este O(N2).
i 1 2