Selection sort

Pokročilé řadicí algoritmy

SSŠVT


Selection sort

Princip

Selection sort hledá v nesetříděné části kolekce extrémní prvek (minimum nebo maximum) a tento prvek následně ihned zatřídí na správnou pozici (první volnou) v setříděné části kolekce.

Selection sort je v jistém smyslu duální postup vůči Insertion sortu:


Algoritmus

Obdobně jako u Insertion sortu: Mějme dvě dynamické kolekce, které .NET nazývá seznamy.

V prvním seznamu jsou na začátku všechny prvky. Říkejme mu nesetříděný seznam. Druhý seznam je na začátku prázdný. Bude to pro nás setříděný seznam. Třídíme od nejmenšího prvku po největší.

Najdeme v nesetříděném seznamu minimální prvek. Odebereme minimální prvek z nesetříděného seznamu (metoda Remove, případně RemoveAt) a přidáme ho na konec setříděného seznamu (metoda Add).

Předchozí krok opakujeme tak dlouho, dokud jsou nějaké prvky v nesetříděném seznamu.

Jakmile je vstupní nesetříděný seznam prázdný, máme všechny jeho původní prvky již ve správném pořadí ve druhém, setříděném seznamu.


Ilustrace

Selection Sort Example

Příklad


Odkaz

Více informací: https://en.wikipedia.org/wiki/Selection_sort