Celočíselné řazení
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 22. ledna 2021; kontroly vyžadují
2 úpravy .
Celočíselné třídění je úkolem seřadit nějakou sadu hodnot pomocí celočíselných klíčů. Algoritmy třídění celých čísel lze také použít pro problémy, kde klíče jsou čísla s plovoucí desetinnou čárkou nebo textové řetězce [1] . Schopnost provádět celočíselné aritmetické operace s klíči umožňuje, aby algoritmy třídění celých čísel byly v mnoha případech rychlejší než podobné třídicí algoritmy využívající srovnání, v závislosti na operacích povolených ve výpočetním modelu a velikosti čísel klíčů.
Obvyklé celočíselné třídicí algoritmy: košový sort , radix sort , počítání sort jsou široce používané a efektivní [2] [3] . Další výzkum celočíselných třídicích algoritmů se zaměřil na teoretická vylepšení nejhorších případů a získané algoritmy nejsou považovány za efektivní na moderních 64bitových počítačích, ačkoli experimenty ukázaly, že některé z těchto metod mohou být lepší než bitové třídění dat. se 128 nebo více bity .na klíči [4] . Pro velké datové sady je omezením téměř náhodný přístup do paměti u celočíselných třídicích algoritmů, zejména ve srovnání s jinými třídicími algoritmy, které byly navrženy s ohledem na hierarchickou paměťovou strukturu .
Celočíselné řazení se používá v jednom ze šesti benchmarků v sadě DARPA High Productivity Computing Systems Discrete Mathematics a v jednom z jedenácti kritérií v sadě NAS Parallel Benchmarks [5] .
Výpočtové modely
Časová omezení celočíselných třídicích algoritmů obvykle závisí na třech parametrech: - počtu datových hodnot, které mají být tříděny, - řádové velikosti největšího možného klíče a - počtu bitů ve strojovém slově počítače na který bude algoritmus proveden. Obecně se předpokládá , že strojová slova jsou dostatečně velká, aby reprezentovala jak index ve vstupní sekvenci, tak klíč [6] .




Algoritmy celočíselného řazení jsou obecně navrženy tak, aby fungovaly buď pro ukazovací strojnebo pro počítač s náhodným přístupem do paměti . Hlavní rozdíl mezi těmito modely spočívá v tom, že stroje s náhodným přístupem vám umožňují používat libovolnou hodnotu v registru jako adresu paměti při operacích čtení a zápisu s hodnotou jednotky času a organizovat složité manipulace s daty pomocí vyhledávací tabulky . Model ukazatelového stroje umožňuje přístup k paměti pouze prostřednictvím ukazatelů, které nelze manipulovat aritmetickými operacemi. V obou modelech lze bitové operace provádět zpravidla v jednom časovém řezu . Různé celočíselné třídicí algoritmy vytvářejí různé předpoklady o tom, zda lze celočíselné násobení provést v jednom časovém řezu [6] [7] . Lze také zvážit specializovanější modely počítání, jako jsou paralelní stroje s náhodným přístupem [8] [9] [10] [11] [12] .
V roce 1999 se ukázalo, že v některých případech může být násobení nebo vyhledávání v tabulce požadované pro některé celočíselné třídicí algoritmy nahrazeno specializovanými operacemi, které lze snadno implementovat v hardwaru, ale nejsou běžně dostupné na počítačích pro všeobecné použití [7] .
Poznámky
- ↑ Han, Thorup, 2002 .
- ↑ McIlroy, Bostic, McIlroy, 1993 .
- ↑ Andersson, Nilsson, 1998 .
- ↑ Rahman, Raman, 1998 .
- ↑ DARPA HPCS Discrete Mathematics Benchmarks Archivováno 10. března 2016 na Wayback Machine , Duncan A. Buell, University of South Carolina, získáno 20. 4. 2011.
- ↑ 1 2 Fredman, Willard, 1993 .
- ↑ 1 2 Andersson, Miltersen, Thorup, 1999 .
- ↑ Reif, 1985 .
- ↑ Cole, Vishkin, 1986 , Komentář.
- ↑ Hagerup, 1987 .
- ↑ Bhatt a kol., 1991 .
- ↑ Albers, Hagerup, 1997 .
Literatura
- Ajtai, M., Fredman, M., Komlós, J. Hashovací funkce pro prioritní fronty // Information and Control. - 1984. - Sv. 63 , č. 3 . — S. 217–225 . - doi : 10.1016/S0019-9958(84)80015-7 .
- Albers, Susanne, Hagerup, Torben. Vylepšené paralelní řazení celých čísel bez souběžného zápisu // Informace a výpočty. - 1997. - Sv. 136 , č. 1 . — S. 25–51 . - doi : 10.1006/inco.1997.2632 .
- Andersson, Arne, Hagerup, Torben, Nilsson, Stefan, Raman, Rajeev. Řazení v lineárním čase? (anglicky) // Journal of Computer and System Sciences. - 1998. - Sv. 57 , č. 1 . — S. 74–93 . - doi : 10.1006/jcss.1998.1580 .
- Andersson, Arne, Nilsson, Stefan. Implementace radixsort // The ACM Journal of Experimental Algorithmics. - 1998. - Sv. 3 . - doi : 10.1145/297096.297136 .
- Andersson, Arne, Miltersen, Peter Bro, Thorup, Mikkel. Fusion stromy lze implementovat pouze s instrukcemi AC 0 (anglicky) // Theoretical Computer Science. - 1999. - Sv. 215 , č.p. 1-2 . — S. 337–344 . - doi : 10.1016/S0304-3975(98)00172-8 .
- Bhatt, PCP, Diks, K., Hagerup, T., Prasad, VC, Radzik, T., Saxena, S. Vylepšené deterministické paralelní třídění celých čísel // Information and Computation. - 1991. - Sv. 94 , č. 1 . — S. 29–47 . - doi : 10.1016/0890-5401(91)90031-V .
- Cole, R., Vishkin, u. Deterministické házení mincí s aplikacemi pro optimální pořadí paralelních seznamů // Informace a kontrola. - 1986. - Sv. 70 , č. 1 . — S. 32–53 . - doi : 10.1016/S0019-9958(86)80023-7 .
- Comrie, LJ Tabulovací stroje Hollerith and Powers // Trans . kancelář mach. User's Assoc., Ltd. — 1929–1930. — S. 25–37 .
- Cormen, Thomas H., Leiserson, Charles E., Rivest, Ronald L., Stein, Clifford. Úvod do algoritmů . — MIT Press a McGraw-Hill, 2001.
- Fredman, Michael L., Willard, Dan E. Překonání informačně-teoretické vazby s fúzními stromy (anglicky) // Journal of Computer and System Sciences. - 1993. - Sv. 47 , č. 3 . — S. 424–436 . - doi : 10.1016/0022-0000(93)90040-4 .
- Fredman, Michael L., Willard, Dan E. Trans-dichotomické algoritmy pro minimální kostry a nejkratší cesty // Journal of Computer and System Sciences. - 1994. - Sv. 48 , č. 3 . - S. 533-551 . - doi : 10.1016/S0022-0000(05)80064-9 .
- Goodrich, Michael T., Tamassia, Roberto. Návrh algoritmu : základy, analýza a příklady internetu . — John Wiley & Sons, 2002. — S. 241–243 .
- Hagerup, Torben. Směrem k optimálnímu paralelnímu třídění lopatek // Information and Computation. - 1987. - Sv. 75 , č. 1 . — S. 39–51 . - doi : 10.1016/0890-5401(87)90062-9 .
- Han, Yijie. Deterministické třídění v O ( n log log n ) čase a lineárním prostoru // Journal of Algorithms. Poznání, informatika a logika. - 2004. - Sv. 50 , č. 1 . — S. 96–105 . - doi : 10.1016/j.jalgor.2003.09.001 .
- Han, Yijie, Thorup, M. Symposium o základech informatiky . - 2002. - S. 135-144 . - doi : 10.1109/SFCS.2002.1181890 .
- Kirkpatrick, David, Reisch, Stefan. Horní hranice pro třídění celých čísel na počítačích s náhodným přístupem // Teoretická informatika. - 1984. - Sv. 28 , č. 3 . — S. 263–276 . - doi : 10.1016/0304-3975(83)90023-3 .
- McIlroy, Peter M., Bostic, Keith, McIlroy, M. Douglas. Engineering Radix Sort (anglicky) // Computing Systems. - 1993. - Sv. 6 , č. 1 . — S. 5–27 .
- Pedersen, Morten Nicolay. Studie praktického významu algoritmů word RAM pro vnitřní celočíselné třídění . — Katedra informatiky, University of Copenhagen, Dánsko, 1999. Archivováno z originálu 16. března 2012.
- Rahman, Naila, Raman, Rajeev. Algorithm Engineering, 2nd International Workshop, WAE '92, Saarbrücken, Německo, 20.–22. srpna 1998, Proceedings . — Max Planck Institute for Computer Science, 1998. — S. 193–203 .
- Reif, John H. Symposium on Foundations of Computer Science . - 1985. - S. 496-504 . - doi : 10.1109/SFCS.1985.9 .
- Thorup, Mikkel. Náhodné řazení v O ( n log log n ) čase a lineárním prostoru pomocí sčítání, posunu a bitových booleovských operací // Journal of Algorithms. - 2002. - Sv. 42 , č. 2 . — S. 205–230 . - doi : 10.1006/jagm.2002.1211 .
- Thorup, Mikkel. Proceedings of the Fourteenth Annual ACM-SIAM Symposium on Discrete Algorithms (Baltimore, MD, 2003 ) . - ACM, 2003. - S. 699-707 .
- Thorup, Mikkel. Ekvivalence mezi prioritními frontami a řazením (anglicky) // Journal of the ACM. - 2007. - Sv. 54 , č. 6 . - doi : 10.1145/1314690.1314692 .
- Willard, Dan E. Log-logaritmické dotazy na rozsah nejhoršího případu jsou možné v prostoru Θ( N ) // Information Processing Letters. - 1983. - Sv. 17 , č. 2 . — S. 81–84 . - doi : 10.1016/0020-0190(83)90075-3 .