Pigeonhole sort
Pigeonhole je algoritam za sortiranje koji je dobar za sortiranje nizova elemenata, gde je broj elemenata jednak n i broj mogućih vrednosti ključeva jednak N. N i n su otprilike jednaki. Algoritam ima složenost od O(n + N). Vrlo je sličan sortiranju s prebrojavanjem, ali se razlikuje jer “pomera” članove dva puta. Jednom u “kofu” nizova i onda drugi put na konačno odredište, dok counting sort pravi pomoćni niz i onda ga koristi da izračuna konačno odredište svakog člana I stavlja ga na to mesto.[1] Pigeonhole sort radi na sledeći način:
PrimerPretpostavimo da sortiramo ove vrednosti parova po prvom elementu:
Za svaku vrednost koja je između 3 i 8 pravimo rupu, i onda u nju stavljamo odgovarajući element:
Onda prolazimo kroz niz rupa po redu i onda vraćamo elemente u prvobitni niz. Razlika između pigeonhole sorta i counting sorta je ta što u counting sortu ne postoji lista elemenata u pomoćniom nizu nego samo broj elemenata.
Za nizove koji gde je N mnogo veće od n koristi se bucket sort i on se smtra generalizacijom koja je efektivnija što se tiče i vremenske i prostorne složenosti. Reference
|
Portal di Ensiklopedia Dunia