El ordenamiento por selección (Selection Sort) es un algoritmo de ordenamiento que requiere O operaciones para ordenar una lista de n elementos.
Su funcionamiento es el siguiente:
- Buscar el mínimo elemento de la lista
- Intercambiarlo con el primero
- Buscar el mínimo en el resto de la lista
- Intercambiarlo con el segundo
Y en general:
- Buscar el mínimo elemento entre una posición i y el final de la lista
- Intercambiar el mínimo con el elemento de la posición i
Ejemplo en c++:
#include <iostream>
#include <vector>
using namespace std;
template <class T>
void ordena_seleccion(vector<T>& v) {
for (int i = 0; i < v.size(); ++i) {
int min = i;
for (int c = i + 1; c < v.size(); ++c) {
if (v[min] > v[c]) min = c;
}
T aux = v[i];
v[i] = v[min];
v[min] = aux;
}
}