Att sortera en uppsättning objekt i en lista är en uppgift som ofta förekommer i datorprogrammering. Ofta kan en människa utföra denna uppgift intuitivt. Men ett datorprogram måste följa en sekvens med exakta instruktioner för att uppnå detta. Denna sekvens av instruktioner kallas en algoritm. En sorteringsalgoritm är en metod som kan användas för att placera en lista med oordnade objekt i en ordnad sekvens. Ordningsföljden bestäms av en tangent. Olika sorteringsalgoritmer finns, och de skiljer sig vad gäller effektivitet och prestanda. Några viktiga och välkända sorteringsalgoritmer är bubbelsorteringen, urvalssorteringen, insättningssorteringen och snabbsorteringen.
Bubble Sort
Bubblasorteringsalgoritmen fungerar genom att upprepade gånger byta intilliggande element som inte finns i beställ tills hela listan med objekt är i följd. På det här sättet kan objekt ses som bubbla upp listan enligt deras nyckelvärden.
Den främsta fördelen med bubbelsorteringen är att den är populär och enkel att implementera. Vid bubblasortering byts dessutom element på plats utan att använda extra tillfällig lagring, så utrymmet kräver ett minimum. Den största nackdelen med bubbelsorten är det faktum att den inte klarar en lista med ett stort antal föremål. Detta beror på att bubblasorteringen kräver bearbetningssteg i n-kvadrat för varje n antal element som ska sorteras. Som sådan är bubbelsorteren mestadels lämplig för akademisk undervisning men inte för verkliga tillämpningar.
Urvalssortering <<> Urvalssorten fungerar genom att upprepade gånger gå igenom listan över objekt, varje gång du väljer ett objekt enligt att beställa och placera den i rätt position i sekvensen.
Den största fördelen med urvalsorten är att den fungerar bra på en liten lista. Eftersom det är en platsalternativsorteringsalgoritm krävs dessutom ingen extra tillfällig lagring utöver vad som krävs för att hålla den ursprungliga listan. Den främsta nackdelen med urvalsorten är dess dåliga effektivitet när man hanterar en enorm lista med artiklar. I likhet med bubblasorteringen kräver urvalsorten n-kvadratiskt antal steg för sortering av n-element. Dessutom påverkas dess prestanda lätt av den första beställningen av artiklarna före sorteringsprocessen. På grund av detta är urvalssorteringen bara lämplig för en lista med få element som är i slumpmässig ordning.
Insertion Sort
Införingssortering skannar upprepade gånger listan med objekt, varje gång du sätter in objektet i oordnad sekvens till rätt position.
Den största fördelen med införingssorteringen är dess enkelhet. Det visar också en bra prestanda när det handlar om en liten lista. Införingssorteringen är en sorteringsalgoritm på plats så att utrymmeskravet är minimalt. Nackdelen med införingssorten är att den inte fungerar lika bra som andra, bättre sorteringsalgoritmer. Med n-kvadratiska steg som krävs för att varje n-element ska sorteras, hanterar införingssorteringen inte bra med en enorm lista. Därför är införingssorteringen särskilt användbar endast när du sorterar en lista med få artiklar.
Snabbsortering <<> Snabbsorteringen fungerar enligt divide-and-conquer-principen. Först partitioneras listan över objekt i två underlistor baserade på ett pivotelement. Alla element i den första sublistan är arrangerade att vara mindre än pivoten, medan alla element i den andra sublisten är anordnade att vara större än pivoten. Samma partitions- och arrangemangsprocess utförs upprepade gånger på de resulterande underlistorna tills hela listan med objekt sorteras.
Den snabba sorteringen betraktas som den bästa sorteringsalgoritmen. Detta är på grund av dess betydande fördel när det gäller effektivitet eftersom den kan hantera bra med en enorm lista med artiklar. Eftersom det sorteras på plats krävs ingen extra lagring också. Den lilla nackdelen med snabb sortering är att dess sämsta prestanda liknar genomsnittliga prestanda för bubblor, insättning eller val av sortering. I allmänhet producerar den snabba sorteringen den mest effektiva och allmänt använda metoden för att sortera en lista med vilken artikelstorlek som helst.