zvolit - online puzzle

Řazení výběrem (anglicky selection sort) je implementačně jednoduchý řadicí algoritmus s časovou složitostí O(N²). 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 Heapsort nebo Mergesort.

Algoritmus je univerzální (pracuje na základě porovnávání dvojic prvků), pracuje lokálně (nevyžaduje pomocnou paměť), není stabilním (prvkům se stejným klíčem může změnit vzájemnou polohu) a nepatří mezi přirozené řadicí algoritmy (částečně seřazený seznam se bude zpracovávat stejně dlouho jako neseřazený).

Princip

Budeme uvažovat o vzestupném řazení. Seřazenou část budeme mít vlevo a vždy budeme hledat minimum z neseřazené části. Analogicky opačně se tento princip může aplikovat pro sestupné řazení.

Rozdělíme si posloupnost na seřazenou a neseřazenou část

Najdeme prvek s nejmenší hodnotou v neseřazené části posloupnosti

Zaměníme ho s prvkem na první pozici neseřazené části

První prvek neseřazené části zahrneme do seřazené části a zároveň neseřazenou část zmenšíme o 1 prvek zleva

Zbytek posloupnosti se uspořádá opakováním kroků 2 až 5 pro zbylou neseřazenou část

Nestabilita řazení

Algoritmus není stabilním (může změnit pořadí u prvků se shodným klíčem).

Je to dáno tím, že se prohazují nesousední prvky. Například pokud uvážíme množinu

M

=

{

3

1

,

2

,

3

2

,

1

}

{\displaystyle M=\{3_{1},2,3_{2},1\}}

, tak nám ji algoritmus seřadí jako

M

=

{

1

,

2

,

3

2

,

3

1

}

{\displaystyle M=\{1,2,3_{2},3_{1}\}}

.

pojďme recyklovat online puzzleTioiseau online puzzle