Documente Academic
Documente Profesional
Documente Cultură
Sortare
Autori:-Balan Rares Ciprian
-Antal Stefan
Cuprins
1.Definiție
2.Clasificare
3.Metode:
-Metoda Bulelor
-Selecție
-Inserție
-STL Sort
4.Suplimentar
1.Definiție:
-Sortarea unui tablou reprezintă o
rearanjare a elementelor astfel încât
valorile acestora să fie într-o anumită
ordine. De regulă ordinea cerută este
cea crescătoare sau descrescătoare.
2.Clasificare: a)Neeficienți: -Metoda Bulelor
-Interschimbare
b)Eficienți: -Quick Sort
-Merge Sort (Vezi pnct. 4)
-Heap Sort
3.Metode
•fie un vector X[] cu n elemente
•parcurgem vectorul și pentru oricare două elemente învecinate care nu
sunt în ordinea dorită, le interschimbăm valorile
•după o singură parcurgere, vectorul nu se va sorta, dar putem repeta
parcurgerea
•dacă la o parcurgere nu se face nicio interschimbare, vectorul este sortat
Exemplu
0 1 2 3 4
47 23 12 17 30
Deoarece am făcut interschimbări, nu
știm dacă vectorul este ordonat.
0 1 2 3 4
47 23 12 17 30
47 <- -> 23 12 17 30
23 47 12 17 30
23 12 47 17 30
23 12 17 47 30
23 12 17 30 47
23 12 17 30 47
Algoritmul: int n, v[100];
sort(A + s, A + d + 1);
Daca se doreste sortarea unui tablou A cu n elemente, indexate de la 0 la n-1
apelul va fi:
sort(A, A + n)
Daca tabloul este indexat de la 1 la n apelul va fi:
Sort(A +1, A + n + 1)
Apelurile de mai sus sorteaza crescator elemente ale secventei/tabloului
Ordonarea descrescatoare: Pentru a sorta descrescător elementele
secvenței delimitate de indicii s și d în tabloul A cu elemente de tip
int, se transmite funcției sort un parametru suplimentar, astfel:
sort(A + s, A + d + 1, greater<int>());
Dacă elementele tabloului A sunt de tip double, apelul va fi:
sort(A + s, A + d + 1, greater<double>());
Ordonarea dupa alte criterii: Al treilea parametru al funcției sort este
de fapt o funcție de comparare, care se folosește pentru a stabili
dacă elementele secvenței/tabloului sunt în ordinea dorită. Mai
precis, această funcție are doi parametri de același tip cu elementele
tabloului sortat și returnează true dacă primul parametru este situat
înaintea celui de-al doilea în ordinea în care se doresc a fi ordonate
elementele tabloului și false în caz contrar.