Nykymaailmassa Valintalajittelu on jatkuvan keskustelun ja analyysin aihe. Olipa Valintalajittelu:llä yhteiskuntavaikutuksensa, historiallisen merkityksensä, kulttuurivaikutuksensa tai tieteellisen merkityksensä vuoksi tärkeä paikka keskustelun asialistalla. Muinaisista ajoista nykypäivään Valintalajittelu on herättänyt ihmiskunnan kiinnostusta ja uteliaisuutta, synnyttänyt syviä pohdiskeluja ja provosoinut jatkuvaa tutkimusta. Tässä artikkelissa tutkimme Valintalajittelu:n eri puolia ja paljastamme sen monet puolet ja sen merkityksen nykyisessä kontekstissa.
Valintalajittelu (engl. selection sort) on tietojenkäsittelytieteessä tehoton mutta yksinkertainen ja intuitiivinen lajittelualgoritmi. Sen keskimääräinen asymptoottinen suoritusaika on O(n2).
Algoritmi voidaan ilmaista seuraavasti:
T: taulukko first: T:n ensimmäinen lajiteltava indeksi last: T:n viimeinen lajiteltava indeksi for i := first to last – 1 do min := pienin alkio väliltä T...T vaihda T <–> min end for
Tällöin silmukkainvariantti on:
C++-kielellä koko algoritmi, mukaan lukien minimiarvon etsiminen, voidaan kirjoittaa seuraavasti:
void selectionSort(int T, int pituus) { int i, j, min; for (i = 0; i < pituus - 1; i++) { min = i; for (j = i+1; j < pituus; j++) if (T < T) min = j; swap(T, T); } }