Sortowanie przez wybór - SelectionSort
Metoda porządkowania przez wybór polega na porządkowaniu zbioru w sposób rosnący tzn. element najmniejszy powinien znaleźć się na pierwszej pozycji. Metoda ta polega na znalezieniu w zbiorze elementu najmniejszego i wymienieniu go z elementem na czytanej pozycji zbioru aż do całkowitego jego uporządkowania.
Dane: n - liczba elementów zbioru, d[ ] – zbiór sortowany. Elementy zbioru mają indeksy od 1 do n.
Wynik: Uporządkowany zbiór d[ ]
Algorytm: porządkowanie przez wybór – Selection Sort
Idea: najmniejszy wśród nieuporządkowanych daj na początek
Krok 1. Dla j = 1, 2, ..., n - 1: wykonuj Krok 1 ...Krok 4, a następnie zakończ algorytm
Krok 2. pmin ← j
Krok 3. Dla i = j + 1, j + 2, ..., n: jeśli d[i] < d[pmin], to pmin ← i
Krok 4. d[j] ↔ d[pmin]
for(j = 0; j < N - 1; j++)
{
pmin = j;
for(i = j + 1; i < N; i++)
{
if(d[i] < d[pmin]) pmin = i;
}
swap(d[pmin], d[j]);
}
Wnioski:
- algorytm ten jest bardzo kosztownym algorytmem (klasa złożoności obliczeniowej – O(N2)
- nie nadaje się do porządkowania dużych zbiorów
- wykonuje taką samą ilość operacji porównania dla zbiorów częściowo uporządkowanych jak i dla zbiorów nieuporządkowanych
- algorytm przejrzysty, zwięzły