Sortarea digitală

Algoritmul de sortare digitală (radix sort) a fost utilizat în mașinile pentru sortarea cardurilor perforate. În cartelele perforate din carton au fost găurite perforate speciale. În fiecare dintre cele 80 de coloane existau locuri pentru 12 găuri dreptunghiulare.







Mașinile de sortare nu au specificat coloana pe care să se sorteze și ea a desfăcut un pachet de cărți cu pumn de 10 stive bazat pe care gaura 0-9 a fost perforată în coloana specificată.

Cum să sortați o punte de cărți perforate cu numere multivate (numărul de unități într-o coloană, zeci de ani dintr-o singură coloană etc.)? Primul lucru care vine în minte este să începeți sortarea de la nivelul superior. Acest lucru va avea ca rezultat 10 stive, fiecare dintre ele urmând să fie împărțit în 10 etape și așa mai departe - va primi un număr mare de cărți de pumn.

Destul de ciudat, este convenabil să se înceapă cu cel mai puțin semnificativ, extinderea punții 10 stive bazate pe în cazul în care o gaură perforată coloană in''mlad Șem „“. Rezultante 10 stive trebuie apoi îndoite una în această ordine: .. Primul card cu 0, atunci cartela 1 etc. Puntea rezultată rassortiruem din nou 10 stive, dar în conformitate cu descărcarea zecilor, adăugați stiva rezultând într-o singură punte , etc; dacă pe cardurile perforate au fost înregistrate numere cu valoare d, atunci va fi necesar să folosiți mașina de sortare d ori. În Fig. 2.9 arată cum funcționează acest algoritm, aplicat la șapte cifre din trei cifre.

Sortarea digitală

Figura 2.9 - Exemplu de sortare digitală a cifrelor de trei cifre

Figura arată ordinea inițială a numerelor și, de asemenea, după sortarea prin a treia, a doua și prima cifră (săgețile verticale indică ce cifră a fost sortată).







Este important ca algoritmul prin care acestea sunt sortate în funcție de categorie, a fost constantă: cărți, care, în această coloană există una și aceeași cifră ar trebui să iasă din mașina de sortare în aceeași după-secvență în care acestea sunt de a servi.

În computere, sortarea digitală este uneori utilizată pentru a organiza date care conțin mai multe câmpuri. Permiteți, de exemplu, să sortați secvența de date. Acest lucru se poate face folosind orice algoritm de sortare, comparând datele după cum urmează: comparați anii, dacă anii coincid - comparați luni, dacă lunile coincid, comparați numerele. În schimb, puteți să sortați matricea de date de trei ori folosind un algoritm robust: în primul rând după zile, apoi după luni, apoi după ani.

Programul de sortare digitală este ușor de scris. Se presupune că fiecare element al matricei N elementare constă din cifre d, cu cifra 1 fiind cea mai tânără cifră și numărul de număr d fiind cifra de vârf.

Sortarea digitală

Listing 2.10 - Algoritmul de sortare digitală

Dacă numerele pot lua valori de la 1 la k, unde k nu este prea mare, atunci alegerea evidentă este sortarea după număr. Pentru n numerele cu semne d de la 0 la k - 1, fiecare trecere ia timp Q (n + k); Din moment ce facem d, timpul de sortare digitală este Q (d × n + k × d). În cazul în care d este constantă și k = O (n), sortarea digitală funcționează pentru un timp liniar.

Cu sortare digitale, este important de a alege radix, deoarece determină dimensiunea memoriei suplimentare necesare cu trei ore. Un exemplu concret: să fie necesar să sortați un milion de numere pe 64 de biți. În cazul când este privit ca un număr de patru cifre în baza 2 16 sortarea apoi digital ponuzhnobitsya Sun ?? sale patru treceri, atunci când este folosit procedura de numarare-Sort Dimensiunea matrice 16 februarie (a care este mică în comparație cu dimensiunea de matrice sortată) . Acest lucru este avantajos, dar diferă de sortare prin comparație, atunci când pentru fiecare număr există 20 operații pe log n ". Din păcate, sortarea digitală, bazată pe numărarea de sortare, necesită o altă matrice (aceeași dimensiune ca și sortat) pentru stocarea rezultatelor intermediare, în timp ce comparația set-Gia algoritmii de sortare face fără ea. Din acest motiv, dacă trebuie să economisiți memoria, algoritmul de sortare rapidă poate fi preferabil.







Articole similare

Trimiteți-le prietenilor: