Prezentarea se încărcă. Vă rugăm să așteptați

Prezentarea se încărcă. Vă rugăm să așteptați

Sortarea prin numărare

Prezentări similare


Prezentarea pe tema: "Sortarea prin numărare"— Transcriere de prezentare:

1 Sortarea prin numărare
Descriere Metoda sortării prin numărare constă în găsirea pentru fiecare element A[i], a numărului de elemente din vector, mai mici ca el. Numerele obţinute sunt memorate într-un vector C; elementele vectorului de sortat A, sunt iniţial atribuite vectorului B. Pe baza vectorului C, elementele lui B vor fi aranjate în vectorul A. Exemplu Vrem să sortăm urmatorul şir: A= (9, -5, 2, 12, 4) Elementele lui A le atribuim lui B: B= (9, -5, 2, 12, 4) Pentru fiecare element A[j] numărăm câte elemente sunt mai mici ca el, aceste numere reţinându-le în vectorul C: C=(3, 0, 1, 4, 2) se reconstitue vect A astfel: A[c[1]+1]=B[1];A[c[2]+1]=B[2]... obţinându-se vectorul A sortat (-5, 2, 4, 9, 12)

2 A= 9 -5 2 12 4 9 -5 2 12 4 Elementele lui A le atribuim lui B
3 4 5 Elementele lui A le atribuim lui B Elementele lui A le atribuim lui B B= 9 -5 2 12 4 i= 1 2 3 4 5 Pentru fiecare element A[i] numaram cate elemente sunt mai mici ca el, aceste numere retinandu-le in vectorul C C= 2

3 A= 9 -5 2 12 4 3 elemnete mai mici decat 9 i= 1 2 3 4 5 C= 3 3

4 A= 9 -5 2 12 4 Nici un elemnet mai mic decat -5 i= 1 2 3 4 5 C= 3 4

5 A= 9 -5 2 12 4 Un element mai mic decat 2 i= 1 2 3 4 5 C= 3 1 5

6 A= 9 -5 2 12 4 4 elemente mai mici decat 12 i= 1 2 3 4 5 C= 3 1 4 6

7 A= 9 -5 2 12 4 2 elemente mai mici decat 4 i= 1 2 3 4 5 C= 3 1 4 2 7

8 A= 9 -5 2 12 4 i= 1 2 3 4 5 Elemente lui A vor ocupa pozitia C[i]+1 C= 3 1 4 2 Se reconstituie vectorul A astfel A[c[i]+1]=B[i] B= 9 9 -5 -5 2 2 12 12 4 4 i= 1 2 3 4 5 8

9 Algoritm descris în pseudocod
Pentru i ← 1,n execută c[i] ← 0; b[i] ← a[i]; sfpentru pentru j ← 2,n execută pentru i← 1,j-1 execută dacă a[i]<a[j] atunci c[j] ← c[j]+1 altfel c[i] ← c[i]+1; sfdacă pentru i ← 1,n execută a[c[i]+1] ← b[i]


Descărcați ppt "Sortarea prin numărare"

Prezentări similare


Publicitate de la Google