Heltalssortering
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 22. januar 2021; checks kræver
2 redigeringer .
Heltalssortering er opgaven med at sortere et sæt værdier ved hjælp af heltalsnøgler . Heltalssorteringsalgoritmer kan også bruges til problemer, hvor nøglerne er flydende kommatal eller tekststrenge [1] . Evnen til at udføre heltals aritmetiske operationer på nøgler tillader heltalssorteringsalgoritmer at være hurtigere i mange tilfælde end lignende sorteringsalgoritmer ved hjælp af sammenligninger, afhængigt af de operationer, der er tilladt i beregningsmodellen og størrelsen af nøgletallene.
De sædvanlige heltalssorteringsalgoritmer: kurvsortering , radixsortering , tællesortering er meget udbredte og effektive [2] [3] . Yderligere forskning i heltalssorteringsalgoritmer har fokuseret på worst-case teoretiske forbedringer, og de opnåede algoritmer anses ikke for at være effektive på moderne 64-bit computere, selvom eksperimenter har vist, at nogle af disse metoder kan være bedre end bitvis sortering af data med 128 eller flere bits på tasten [4] . Også for store datasæt er den næsten tilfældige hukommelsesadgang karakter af heltalssorteringsalgoritmer en begrænsning, især sammenlignet med andre sorteringsalgoritmer, der er designet med en hierarkisk hukommelsesstruktur i tankerne .
Heltalssortering bruges i et af de seks benchmarks i DARPA High Productivity Computing Systems Discrete Mathematics-pakken og i et af de elleve kriterier i NAS Parallel Benchmarks-pakken [5] .
Beregningsmodeller
Tidsbegrænsningerne for heltalssorteringsalgoritmer afhænger normalt af tre parametre: - antallet af dataværdier, der skal sorteres, - størrelsesordenen af den størst mulige nøgle, og - antallet af bits i computerens maskinord på hvilken algoritmen vil blive udført. Det antages generelt, at , dvs. maskinordene er store nok til at repræsentere både indekset i inputsekvensen og tasten [6] .
Heltalssorteringsalgoritmer er generelt designet til at fungere enten for markørmaskineneller for en maskine med tilfældig adgang til hukommelsen . Den største forskel mellem disse modeller er, at maskiner med tilfældig adgang giver dig mulighed for at bruge en vilkårlig værdi i et register som en hukommelsesadresse i læse- og skriveoperationer med en tidsenhedsværdi og organisere komplekse datamanipulationer ved hjælp af en opslagstabel . Pegemaskinemodellen giver kun adgang til hukommelsen gennem pegepinde, som ikke kan manipuleres ved aritmetiske operationer. I begge modeller kan bitvise operationer som regel udføres på én gang . Forskellige heltalssorteringsalgoritmer gør forskellige antagelser om, hvorvidt heltalsmultiplikation kan udføres i en tidsudsnit [6] [7] . Mere specialiserede beregningsmodeller, såsom parallelle maskiner med tilfældig adgang [8] [9] [10] [11] [12] , kan også overvejes .
Det blev vist i 1999, at i nogle tilfælde kan den multiplikation eller tabelopslag, der kræves for nogle heltalssorteringsalgoritmer, erstattes af specialiserede operationer, der let kan implementeres i hardware, men som normalt ikke er tilgængelige på computere til generelle formål [7] .
Noter
- ↑ Han, Thorup, 2002 .
- ↑ McIlroy, Bostic, McIlroy, 1993 .
- ↑ Andersson, Nilsson, 1998 .
- ↑ Rahman, Raman, 1998 .
- ↑ DARPA HPCS Discrete Mathematics Benchmarks Arkiveret 10. marts 2016 på Wayback Machine , Duncan A. Buell, University of South Carolina, hentet 2011-04-20.
- ↑ 1 2 Fredman, Willard, 1993 .
- ↑ 1 2 Andersson, Miltersen, Thorup, 1999 .
- ↑ Reif, 1985 .
- ↑ Cole, Vishkin, 1986 , Kommentar.
- ↑ Hagerup, 1987 .
- ↑ Bhatt et al., 1991 .
- ↑ Albers, Hagerup, 1997 .
Litteratur
- Ajtai, M., Fredman, M., Komlós, J. Hash-funktioner til prioriterede køer // Information og kontrol. - 1984. - Bd. 63 , nr. 3 . — S. 217–225 . - doi : 10.1016/S0019-9958(84)80015-7 .
- Albers, Susanne, Hagerup, Torben. Forbedret parallel heltalssortering uden samtidig skrivning // Information og beregning. - 1997. - Bd. 136 , nr. 1 . — S. 25–51 . - doi : 10.1006/inco.1997.2632 .
- Andersson, Arne, Hagerup, Torben, Nilsson, Stefan, Raman, Rajeev. Sortering i lineær tid? (engelsk) // Journal of Computer and System Sciences. - 1998. - Bd. 57 , nr. 1 . — S. 74–93 . - doi : 10.1006/jcss.1998.1580 .
- Andersson, Arne, Nilsson, Stefan. Implementering af radixsort // The ACM Journal of Experimental Algorithmics. - 1998. - Bd. 3 . - doi : 10.1145/297096.297136 .
- Andersson, Arne, Miltersen, Peter Bro, Thorup, Mikkel. Fusionstræer kan kun implementeres med AC 0 instruktioner (engelsk) // Theoretical Computer Science. - 1999. - Bd. 215 , nr. 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. Forbedret deterministisk parallel heltalssortering // Information and Computation. - 1991. - Bd. 94 , nr. 1 . — S. 29–47 . - doi : 10.1016/0890-5401(91)90031-V .
- Cole, R., Vishkin, u. Deterministisk møntkastning med applikationer til optimal parallel listerangering // Information og kontrol. - 1986. - Bd. 70 , nr. 1 . — S. 32–53 . - doi : 10.1016/S0019-9958(86)80023-7 .
- Comrie, LJ Hollerith og Powers tabuleringsmaskiner // Trans . kontor mach. Users' Assoc., Ltd. — 1929–1930. — S. 25–37 .
- Cormen, Thomas H., Leiserson, Charles E., Rivest, Ronald L., Stein, Clifford. Introduktion til algoritmer . — MIT Press og McGraw-Hill, 2001.
- Fredman, Michael L., Willard, Dan E. Overgår den informationsteoretiske bundet med fusionstræer (engelsk) // Journal of Computer and System Sciences. - 1993. - Bd. 47 , nr. 3 . — S. 424–436 . - doi : 10.1016/0022-0000(93)90040-4 .
- Fredman, Michael L., Willard, Dan E. Trans-dikotome algoritmer til minimumsspændende træer og korteste stier // Journal of Computer and System Sciences. - 1994. - Bd. 48 , nr. 3 . - S. 533-551 . - doi : 10.1016/S0022-0000(05)80064-9 .
- Goodrich, Michael T., Tamassia, Roberto. Algoritmedesign : Fundamenter, analyse og interneteksempler . — John Wiley & Sons, 2002. — S. 241–243 .
- Hagerup, Torben. Mod optimal parallel skovlsortering // Information og beregning. - 1987. - Bd. 75 , nr. 1 . — S. 39–51 . - doi : 10.1016/0890-5401(87)90062-9 .
- Han, Yijie. Deterministisk sortering i O ( n log log n ) tid og lineært rum // Journal of Algorithms. Kognition, informatik og logik. - 2004. - Bd. 50 , nej. 1 . — S. 96–105 . - doi : 10.1016/j.jalgor.2003.09.001 .
- Han, Yijie, Thorup, M. Symposium on Foundations of Computer Science . - 2002. - S. 135-144 . - doi : 10.1109/SFCS.2002.1181890 .
- Kirkpatrick, David, Reisch, Stefan. Øvre grænser for sortering af heltal på random access-maskiner // Teoretisk datalogi. - 1984. - Bd. 28 , nr. 3 . — S. 263–276 . - doi : 10.1016/0304-3975(83)90023-3 .
- McIlroy, Peter M., Bostic, Keith, McIlroy, M. Douglas. Engineering Radix Sort (engelsk) // Computing Systems. - 1993. - Bd. 6 , nr. 1 . — S. 5–27 .
- Pedersen, Morten Nicolay. En undersøgelse af den praktiske betydning af ord-RAM-algoritmer for intern heltalssortering . — Institut for Datalogi, Københavns Universitet, Danmark, 1999. Arkiveret fra originalen 16. marts 2012.
- Rahman, Naila, Raman, Rajeev. Algorithm Engineering, 2nd International Workshop, WAE '92, Saarbrücken, Tyskland, 20.-22. august 1998, Proceedings . — Max Planck Instituttet for Datalogi, 1998. — S. 193–203 .
- Reif, John H. Symposium om grundlaget for datalogi . - 1985. - S. 496-504 . - doi : 10.1109/SFCS.1985.9 .
- Thorup, Mikkel. Randomiseret sortering i O ( n log log n ) tid og lineært rum ved hjælp af addition, shift og bitvise booleske operationer // Journal of Algorithms. - 2002. - Bd. 42 , nr. 2 . — S. 205–230 . - doi : 10.1006/jagm.2002.1211 .
- Thorup, Mikkel. Proceedings of the fjortende årlige ACM-SIAM symposium om diskrete algoritmer (Baltimore, MD, 2003 ) . - ACM, 2003. - S. 699-707 .
- Thorup, Mikkel. Ækvivalens mellem prioriterede køer og sortering (engelsk) // Journal of the ACM. - 2007. - Bd. 54 , nr. 6 . - doi : 10.1145/1314690.1314692 .
- Willard, Dan E. Log-logaritmiske worst-case rækkeviddeforespørgsler er mulige i rummet Θ( N ) // Information Processing Letters. - 1983. - Bd. 17 , nr. 2 . — S. 81–84 . - doi : 10.1016/0020-0190(83)90075-3 .