Heltalssortering
Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från
versionen som granskades den 22 januari 2021; kontroller kräver
2 redigeringar .
Heltalssortering är uppgiften att sortera någon uppsättning värden med heltalsnycklar . Heltalssorteringsalgoritmer kan också användas för problem där nycklarna är flyttal eller textsträngar [1] . Möjligheten att utföra heltalsaritmetiska operationer på nycklar gör att heltalssorteringsalgoritmer i många fall kan vara snabbare än liknande sorteringsalgoritmer som använder jämförelser, beroende på de operationer som tillåts i beräkningsmodellen och storleken på nyckeltalen.
De vanliga heltalssorteringsalgoritmerna: basket sort , radix sort , counting sort används ofta och är effektiva [2] [3] . Ytterligare forskning om heltalssorteringsalgoritmer har fokuserat på värsta tänkbara teoretiska förbättringar, och de algoritmer som har erhållits anses inte vara effektiva på moderna 64-bitars datorer, även om experiment har visat att vissa av dessa metoder kan vara bättre än bitvis sortering av data med 128 eller fler bitar på tangenten [4] . För stora datamängder är den nästan slumpmässiga minnesåtkomstnaturen för heltalssorteringsalgoritmer en begränsning, särskilt jämfört med andra sorteringsalgoritmer som har utformats med en hierarkisk minnesstruktur i åtanke .
Heltalssortering används i ett av de sex riktmärkena i DARPA High Productivity Computing Systems Discrete Mathematics-svit och i ett av de elva kriterierna i NAS Parallel Benchmarks-sviten [5] .
Beräkningsmodeller
Tidsbegränsningarna för heltalssorteringsalgoritmer beror vanligtvis på tre parametrar: - antalet datavärden som ska sorteras, - storleksordningen på största möjliga nyckel, och - antalet bitar i datorns maskinord på vilken algoritmen kommer att exekveras. Det antas generellt att , det vill säga maskinorden är tillräckligt stora för att representera både indexet i inmatningssekvensen och tangenten [6] .
Heltalssorteringsalgoritmer är i allmänhet utformade för att fungera antingen för pekmaskineneller för en maskin med slumpmässig tillgång till minnet . Huvudskillnaden mellan dessa modeller är att direktåtkomstmaskiner låter dig använda ett godtyckligt värde i ett register som en minnesadress i läs- och skrivoperationer med ett tidsenhetsvärde, och organisera komplexa datamanipulationer med hjälp av en uppslagstabell . Pekarmaskinsmodellen tillåter endast åtkomst till minnet genom pekare, som inte kan manipuleras med aritmetiska operationer. I båda modellerna kan bitvisa operationer utföras, som regel, i en tidsslice . Olika heltalssorteringsalgoritmer gör olika antaganden om huruvida heltalsmultiplikation kan utföras i en tidsdel [6] [7] . Mer specialiserade beräkningsmodeller, såsom parallella maskiner med slumpmässig åtkomst [8] [9] [10] [11] [12] , kan också övervägas .
Det visades 1999 att i vissa fall kan multiplikationen eller tabellsökningen som krävs för vissa heltalssorteringsalgoritmer ersättas av specialiserade operationer som enkelt kan implementeras i hårdvara men som normalt inte är tillgängliga på datorer för allmänna ändamål [7] .
Anteckningar
- ↑ Han, Thorup, 2002 .
- ↑ McIlroy, Bostic, McIlroy, 1993 .
- ↑ Andersson, Nilsson, 1998 .
- ↑ Rahman, Raman, 1998 .
- ↑ DARPA HPCS Discrete Mathematics Benchmarks Arkiverad 10 mars 2016 på Wayback Machine , Duncan A. Buell, University of South Carolina, hämtad 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 för prioriterade köer // Information and Control. - 1984. - Vol. 63 , nr. 3 . — S. 217–225 . - doi : 10.1016/S0019-9958(84)80015-7 .
- Albers, Susanne, Hagerup, Torben. Förbättrad parallell heltalssortering utan samtidig skrivning // Information and Computation. - 1997. - Vol. 136 , nr. 1 . — S. 25–51 . - doi : 10.1006/inco.1997.2632 .
- Andersson, Arne, Hagerup, Torben, Nilsson, Stefan, Raman, Rajeev. Sortera i linjär tid? (engelska) // Journal of Computer and System Sciences. - 1998. - Vol. 57 , nr. 1 . — S. 74–93 . - doi : 10.1006/jcss.1998.1580 .
- Andersson, Arne, Nilsson, Stefan. Implementering av radixsort // The ACM Journal of Experimental Algorithmics. - 1998. - Vol. 3 . - doi : 10.1145/297096.297136 .
- Andersson, Arne, Miltersen, Peter Bro, Thorup, Mikkel. Fusionsträd kan endast implementeras med AC 0 -instruktioner (engelska) // Teoretisk datavetenskap. - 1999. - Vol. 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. Förbättrad deterministisk parallell heltalssortering // Information and Computation. - 1991. - Vol. 94 , nr. 1 . — S. 29–47 . - doi : 10.1016/0890-5401(91)90031-V .
- Cole, R., Vishkin, u. Deterministisk myntkastning med applikationer för optimal parallell listrankning // Information och kontroll. - 1986. - Vol. 70 , nej. 1 . — S. 32–53 . - doi : 10.1016/S0019-9958(86)80023-7 .
- Comrie, LJ The Hollerith and 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 till algoritmer . — MIT Press och McGraw-Hill, 2001.
- Fredman, Michael L., Willard, Dan E. Överträffar den informationsteoretiska kopplingen med fusionsträd (engelska) // Journal of Computer and System Sciences. - 1993. - Vol. 47 , nr. 3 . — S. 424–436 . - doi : 10.1016/0022-0000(93)90040-4 .
- Fredman, Michael L., Willard, Dan E. Trans-dikotoma algoritmer för minsta spännande träd och kortaste vägar // Journal of Computer and System Sciences. - 1994. - Vol. 48 , nr. 3 . - s. 533-551 . - doi : 10.1016/S0022-0000(05)80064-9 .
- Goodrich, Michael T., Tamassia, Roberto. Algoritmdesign : grunder, analys och exempel på internet . — John Wiley & Sons, 2002. — S. 241–243 .
- Hagerup, Torben. Mot optimal parallell skopsortering // Information and Computation. - 1987. - Vol. 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 och linjärt rum // Journal of Algorithms. Kognition, informatik och logik. - 2004. - Vol. 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 för sortering av heltal på direktåtkomstmaskiner // Teoretisk datavetenskap. - 1984. - Vol. 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 (engelska) // Computing Systems. - 1993. - Vol. 6 , nr. 1 . — S. 5–27 .
- Pedersen, Morten Nicolay. En studie av den praktiska betydelsen av ord-RAM-algoritmer för intern heltalssortering . — Institutionen för datavetenskap, Köpenhamns universitet, Danmark, 1999. Arkiverad från originalet den 16 mars 2012.
- Rahman, Naila, Raman, Rajeev. Algorithm Engineering, 2nd International Workshop, WAE '92, Saarbrücken, Tyskland, 20–22 augusti 1998, Proceedings . — Max Planck-institutet för datavetenskap, 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. Randomiserad sortering i O ( n log log n ) tid och linjärt utrymme med hjälp av addition, shift och bitvisa booleska operationer // Journal of Algorithms. - 2002. - Vol. 42 , nr. 2 . — S. 205–230 . - doi : 10.1006/jagm.2002.1211 .
- Thorup, Mikkel. Handlingar från det fjortonde årliga ACM-SIAM-symposiet om diskreta algoritmer (Baltimore, MD, 2003 ) . - ACM, 2003. - P. 699-707 .
- Thorup, Mikkel. Likvärdighet mellan prioriterade köer och sortering (engelska) // Journal of the ACM. - 2007. - Vol. 54 , nr. 6 . - doi : 10.1145/1314690.1314692 .
- Willard, Dan E. Log-logaritmiska värsta tänkbara intervallfrågor är möjliga i rymden Θ( N ) // Information Processing Letters. - 1983. - Vol. 17 , nr. 2 . — S. 81–84 . - doi : 10.1016/0020-0190(83)90075-3 .