Vista previa de la estructura

Ordenar un array: burbuja, selección e inserción

Tres maneras de ordenar los mismos números: comparaciones, intercambios y ejemplos paso a paso, con un laboratorio visual.

Sección: Algoritmos Actualizado:
Artículos /algoritmi-ordinamento-bubble-selection-insertion
Ordenar un array: burbuja, selección e inserción

9 min

Un array es una secuencia de valores. Ordenarlo significa colocar sus valores, por ejemplo, de menor a mayor. El resultado puede ser idéntico aunque los caminos sean muy diferentes. Usaremos siempre el pequeño array [5, 2, 4, 1] y después probaremos los tres métodos con 12 elementos en el laboratorio visual.

Ilustración de la sección Algoritmos
Sección: Algoritmos

Antes de empezar: comparación e intercambio

Una comparación responde a una pregunta como «¿5 es mayor que 2?». Un intercambio cambia la posición de dos elementos. En el laboratorio, cada comparación y cada intercambio es un paso visible; la duración de la animación no equivale al tiempo real de cálculo del ordenador.

Ordenación de burbuja: el mayor sube al final

Se comparan dos vecinos de izquierda a derecha. Si el primero es mayor, se intercambian. Al terminar una pasada, el mayor valor que quedaba por ordenar llega a la derecha; las siguientes pasadas ya pueden ignorarlo.

  1. Partimos de [5, 2, 4, 1]. Intercambiamos 5 y 2 → [2, 5, 4, 1].
  2. Intercambiamos 5 y 4 → [2, 4, 5, 1]; después 5 y 1 → [2, 4, 1, 5]. El 5 está en su posición final.
  3. En la segunda pasada 2 y 4 permanecen; intercambiamos 4 y 1 → [2, 1, 4, 5].
  4. En la última pasada intercambiamos 2 y 1 → [1, 2, 4, 5].

Es fácil de seguir, pero un array grande puede requerir muchas comparaciones e intercambios. Si una pasada completa no produce ningún intercambio, se puede terminar antes.

Ordenación por selección: buscar el mínimo

Imaginamos una parte ya ordenada a la izquierda y otra pendiente a la derecha. Buscamos el mínimo de la parte derecha y lo intercambiamos con el primer elemento libre. La parte ordenada crece un elemento cada vez.

  1. En [5, 2, 4, 1] el mínimo es 1. Intercambiamos 5 y 1 → [1, 2, 4, 5].
  2. Entre [2, 4, 5], el mínimo ya es 2: no hace falta intercambiar.
  3. Entre [4, 5], el mínimo ya es 4. El resultado es [1, 2, 4, 5].

Sigue haciendo muchas comparaciones aunque el array esté ordenado, pero realiza como máximo un intercambio por posición.

Ordenación por inserción: insertar en la parte ordenada

El primer elemento, por sí solo, ya está ordenado. Tomamos el siguiente y lo movemos hacia la izquierda hasta encontrar su lugar dentro del prefijo ordenado. Este laboratorio muestra el movimiento como intercambios entre vecinos.

  1. Empezamos por [5]. Insertar 2 antes de 5 produce [2, 5, 4, 1].
  2. Insertamos 4 entre 2 y 5 → [2, 4, 5, 1].
  3. Insertamos 1 antes de todos → [1, 2, 4, 5].

Funciona especialmente bien cuando los valores ya están casi ordenados: cada elemento nuevo debe recorrer una distancia corta.

¿Qué cambia realmente?

Los tres métodos ordenan correctamente, pero realizan operaciones diferentes. Burbuja compara vecinos en varias pasadas; selección busca cada mínimo y limita los intercambios; inserción construye progresivamente un prefijo ordenado. En el peor caso, el trabajo crece aproximadamente como el cuadrado del tamaño del array. Con 12 valores, entender por qué ocurre cada movimiento es más útil que medir milisegundos.

Abrir el laboratorio: observar los intercambios, pausar y probar los tres métodos con los mismos 12 números →