Datakurser
Aktuell vecka: 48

Tillbaka till toppen

C# Sortering

Sorteringsalgoritmer

Det finns många olika sorteringsalgoritmer. De vi presenterar nedan är definitivt inte de snabbaste men kanske de lättaste att förstå.

Sök minsta och byt

Algoritmen "sök minsta och byt", kollar vilken som är minst och kommer ihåg det tills vi gått igenom alla, då byter vi plats på aktuell och minsta elementet som vi vet var det finns, då har vi plockat ut ett och fortsätter på samma sätt med resten tills inga återstår. Grejen med denna sortering är att vi tjänar inget på vägen, dvs det sorteras inget extra när vi ändå håller på, alltså det borde finnas effektivare sorteringsalgoritmer, bubbelsortering är en som jag beskriver nedan.

Bubbelsortering

Man låter det största (eller minsta) bubbla igenom hela listan. Sen börjar man om och låter det ur resten största (eller minsta)bubbla upp till platsen innan (eller efter)!

Se följande exempel:
6 2 3 1 4
vi jämför de första två siffrorna, sätter det minsta först
2 6 3 1 4
vi jämför nästa sifferpar, 6 och 3 eftersom dom siffrorna står där nu, sätter det minsta först
2 3 6 1 4
nästa sifferpar, sätter det minsta först
2 3 1 6 4
nästa sifferpar,det sista i denna genomgång, sätter det minsta först
2 3 1 4 6
nu är sista siffran på rätt plats, dvs 6:an, den har bubblat upp genom listan, hoppa till de två första och
jämför som ovan
2 3 1 4
inget hände, fortsätt
2 1 3 4
här blir det effektivare eftersom 1 och 3 byter plats "på vägen" så att säga
2 1 3 4
4:an på rätt plats, börja om, jämför de första två siffrorna (obs! vi låter 6:an vara eftersom den redan är på
rätt plats)
1 2 3
nästa sifferpar
1 2 3
inget hände, 3:an på rätt plats, börja om, jämför de första två siffrorna
1 2
inget hände, båda på rätt plats
listans ser nu ut så här:
1 2 3 4 6

Källor

csharpskolan

MSDN Microsoft Visual C#

Skarp programmering, Jan Skansholm, Studentlitteratur 2011

sorteringsdemos