L'ordinamento di selezione è un algoritmo di ordinamento, spesso utilizzato in informatica. Funziona selezionando l'elemento più piccolo (o più grande) da un elenco non ordinato, posizionandolo all'inizio (o alla fine) dell'elenco e quindi ripetendo il processo per gli elementi rimanenti. Man mano che procede, ordina e crea continuamente l'elenco ordinato.
L'ordinamento per selezione funziona meglio su un elenco ordinato casualmente e ha una complessità temporale pari a O(n2), rendendolo più lento rispetto ad altri algoritmi di ordinamento. È considerato un algoritmo di ordinamento "sul posto" in quanto non richiede spazio aggiuntivo per ordinare un array.
L'ordinamento di selezione può essere un algoritmo adatto per determinati tipi di programmi, ma non può essere utilizzato per insiemi di dati di grandi dimensioni perché è molto lento. Inoltre, non è molto stabile, il che significa che può potenzialmente modificare l’ordine relativo di elementi uguali.
L'ordinamento di selezione viene utilizzato, tra gli altri, nei linguaggi di programmazione come C, C++, Java, Python e JavaScript. È anche uno dei metodi di ordinamento fondamentali insegnati nei corsi introduttivi di informatica.