Aceasta e o versiune anterioară a paginii.
Propunem studierea următorilor algoritmi de sortare:
Numim sortare orice aşezare(sau - mai clar - reaşezare) a unor elemente date în aşa fel încât, după aşezare, să existe o ordine completă în funcţie de un atribut(numit cheie) al elementelor.
Pentru a exista o ordine completă, trebuie să alegem o relaţie pe care vrem sa o impunem. Dacă relaţia este valabilă între oricare două elemente pentru care primul element este aşezat la stânga celui de-al doilea, atunci avem o ordine completă.
Exemplu: dacă alegem drept cheie un atribut număr întreg şi relaţia mai mic sau egal(⇐), obţinem ordinea crescătoare.
Vom descrie un algoritm de sortare prin:
Folosim notaţia O(n) pentru a indica:
Fiecare algoritm se bazează pe o metodă de sortare:
Sortarea prin metoda bulelor se consideră drept una din cele mai puţin efective metode de sortare, dar cu un algoritm mai simplu.
fiind comparate elementele alăturate a[i] si a[i+1]. Dacă vor fi găsite 2 elemente neordonate, valorile lor vor fi interschimbate.
elemente neordonate.
//sortare descrescatoare void bubble(int a[],int n) { int i,schimbat,aux; do { schimbat = 0; for(i = 0; i < n-1; i++) //parcurgem vectorul if(a[i] < a[i+1]) //daca valoarea i din vectorul a este //mai mica decat cea de pe pozitia i+1 { //interschimbare aux = a[i]; a[i] = a[i+1]; a[i+1] = aux; schimbat = 1; } }while(schimbat); }