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:
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.
Více informací: https://en.wikipedia.org/wiki/Selection_sort