Resumen

Ordenar datos es una de las tareas fundamentales en programación, y el selection sort es uno de los algoritmos más intuitivos para lograrlo. A continuación se explica cómo funciona en tiempo de ejecución con un ejemplo práctico que permite visualizar cada paso antes de llevarlo a código.

¿Cómo funciona el selection sort con un ejemplo real?

Partimos de un array con cinco elementos: 50, 23, 15, 20 y 10, ubicados en las posiciones 0 a 4 [0:10]. El algoritmo sigue una regla simple: encontrar el elemento mínimo del array y colocarlo en la posición que le corresponde.

  • En la primera pasada, el número más pequeño es 10 (posición 4).
  • Se hace un swap entre el 10 y el 50 (posición 0).
  • El array queda: 10, 23, 15, 20, 50.

Este intercambio o swapping es la operación central del algoritmo. Cada vez que se localiza el mínimo, se intercambia con el primer elemento del segmento que aún no está ordenado [0:42].

¿Qué son los subarrays ordenado y desordenado?

Después de la primera iteración, el array se divide conceptualmente en dos partes [1:05]:

  • Subarray ordenado: contiene los elementos ya ubicados en su posición definitiva (posición 0).
  • Subarray desordenado: contiene los elementos pendientes de ordenar (posiciones 1 a 4).

Esta separación es la parte más importante del algoritmo. Con cada iteración, el subarray ordenado crece y el desordenado se reduce.

¿Qué ocurre en la segunda iteración?

Se busca el mínimo entre las posiciones 1 a 4: 23, 15, 20, 50. El menor es 15, que se intercambia con el 23 [1:22]. El resultado es:

  • Array: 10, 15, 23, 20, 50.
  • Subarray ordenado: posiciones 0 a 1.
  • Subarray desordenado: posiciones 2 a 4.

¿Qué pasa en la tercera y cuarta iteración?

En la tercera corrida se analiza el rango de la posición 2 a la 4: 23, 20, 50. El menor es 20, que se intercambia con 23 [1:52]. El array queda: 10, 15, 20, 23, 50.

En la cuarta iteración se comparan las posiciones 3 y 4: 23 y 50 [2:18]. Como el 23 ya está en la posición correcta, no se requiere ningún swap real, aunque el algoritmo igualmente ejecuta la comparación. El resultado final es:

  • 10, 15, 20, 23, 50 — el array completamente ordenado.

¿Por qué es importante pensar algorítmicamente?

Aunque en la última iteración no fue necesario mover nada, se destaca la importancia de pensar algorítmicamente [2:28]: el procedimiento se ejecuta de forma sistemática sin importar si el elemento ya está en su lugar. Esto garantiza que el algoritmo funcione correctamente con cualquier conjunto de datos, no solo con casos favorables.

Algunos puntos clave para recordar:

  • El selection sort recorre el subarray desordenado n - 1 veces en total.
  • En cada iteración busca el mínimo y lo coloca al inicio del subarray desordenado.
  • El swap solo involucra dos posiciones: la del mínimo encontrado y la primera posición del segmento pendiente.
  • La frontera entre subarray ordenado y desordenado avanza una posición en cada paso.

Este recorrido práctico deja claro cómo se comporta el algoritmo antes de escribir una sola línea de código. Más adelante se comparará con el bubble sort para entender las diferencias de rendimiento entre ambos enfoques [2:42]. Si te quedó alguna duda sobre los intercambios o la lógica de los subarrays, compártela en los comentarios.