Selection sort
Z Wikipedie, otevřené encyklopedie
Selection sort (zkráceně Selectsort) je jednoduchý algoritmus uspořádávání s časovou složitostí O(N2). Pro svou jednoduchou implementaci a nízký overhead bývá často používán pro uspořádávání malých množství dat. Pro větší objem dat se používají algoritmy s nižší časovou složitostí (O(N log N)) jako Quicksort nebo Mergesort.
[editovat] Princip
- Najdeme prvek s nejmenší hodnotou v posloupnosti dat
- Zaměníme ho s prvkem na první pozici
- Na první pozici se nyní nachází správný prvek, zbytek posloupnosti se uspořádá opakováním těchto kroků pro zbylých n-1 prvků, dokud je n > 1
[editovat] Implementace algoritmu v jazyce C
void selectionSort(int data[], int count) { int i, j, mi, tmp; for (i = 0; i < count - 1; i++) { /* najdeme minimum */ mi = i; for (j = i+1; j < count; j++) if (data[j] < data[mi]) mi = j; /* vyměníme data[i] a data[mi] */ tmp = data[i]; data[i] = data[mi]; data[mi] = tmp; } }