Table of Contents
Numărarea Sortare este un algoritm eficient de sortare utilizat pentru sortarea numerelor întregi într-o anumită gamă. Acesta funcționează prin numărarea numărului de evenimente ale fiecărei valori și apoi calcularea pozițiilor fiecărui element din matricea sortată. Această metodă este deosebit de utilă atunci când gama de date de intrare nu este semnificativ mai mare decât numărul de elemente de sortare.
Cum se numără lucrări de sortare
Algoritmul începe prin crearea unui array de numărare care stochează frecvența fiecărei valori în datele de intrare. Apoi modifică acest număr de caractere pentru a conține pozițiile reale ale fiecărui element în ieșirea sortată. În cele din urmă, construiește matricea sortate prin plasarea elementelor în pozițiile lor corecte, pe baza matricei de numărare.
Exemplu de calcul
Să presupunem că avem array-ul: [4, 2, 8, 3, 3, 1]. Gama de valori este de la 1 la 8. Procesul de numărare duce la o matrice de numărare:
[0, 1, 2, 1, 0, 0, 0, 1, 1]
Acest lucru indică frecvența fiecărui număr. Algoritmul apoi calculează numărul cumulativ pentru a determina pozițiile:
[0, 1, 3, 5, 6, 6, 6, 7]
Folosind acestea, array-ul sortate devine: [1, 2, 3, 3, 4, 8].
Scenarii de aplicare
Numărarea Sortare este potrivită pentru scenarii în care datele de intrare constau dintr-un număr întreg cunoscut, limitat. Acesta este adesea utilizat în:
- Notele de licență pentru sortare (de exemplu, 100-100)
- Organizarea datelor în analiza de frecvenţă
- Sortarea numerelor mici în sistemele integrate
- Punerea în aplicare a unui fel de radix ca subrutină
Eficienţa sa depinde de dimensiunea intervalului faţă de numărul de elemente. Când gama este mică, Sort de numărare poate depăşi algoritmii de comparare bazate pe perform, cum ar fi quicksort sau fuzionează.