Selection sort
From Wikipedia, the free encyclopedia
Remove ads
Selection sort je jednoduchý nestabilný triediaci algoritmus so zložitosťou O(n^2). V porovnaní s ďalšími kvadratickými algoritmami je selection sort všeobecne rýchlejší než bubble sort, avšak pomalší než insertion sort. Výhodou selection sortu oproti algoritmom s asymptotickou zložitosťou O(n * log n) (quick sort, merge sort, heap sort) je jeho konštantná pamäťová zložitosť.
| Tomuto článku alebo sekcii chýbajú odkazy na spoľahlivé zdroje, môže preto obsahovať informácie, ktoré je potrebné ešte overiť. Pomôžte Wikipédii a doplňte do článku citácie, odkazy na spoľahlivé zdroje. |
Remove ads
Algoritmus
Kódy algoritmov v rôznych jazykoch:
Java
public static void selectionSort(int[] array)
{
for (int i = 0; i < array.length - 1; i++) {
int maxIndex = i;
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[maxIndex]) maxIndex = j;
}
int tmp = array[i];
array[i] = array[maxIndex];
array[maxIndex] = tmp;
}
}
C++
void selectionSort(int array[], int size)
{
for (int i = 0; i < size - 1; i++) {
int maxIndex = i;
for (int j = i + 1; j < size; j++) {
if (array[j] < array[maxIndex]) maxIndex = j;
}
int tmp = array[i];
array[i] = array[maxIndex];
array[maxIndex] = tmp;
}
}
C#
public static void SelectionSort(int[] array)
{
for (int i = 0; i < array.Length - 1; i++)
{
int maxIndex = i;
for (int j = i + 1; j < array.Length; j++)
{
if (array[j] < array[maxIndex]) maxIndex = j;
}
int tmp = array[i];
array[i] = array[maxIndex];
array[maxIndex] = tmp;
}
}
Pascal
procedure SelectSort(var X : ArrayType; N : integer);
var
I,
J,
K,
Y : integer;
begin
for I := 1 to N - 1 do
begin
K := I;
Y := X[I];
for J := I + 1 to N do
if X[J] < Y then
begin
K := J;
Y := X[J]
end;
X[K] := X[J];
X[I] := Y;
end
end;
Remove ads
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads