Módulo 7 · Algoritmos

Algoritmos de búsqueda y ordenación

Qué son los algoritmos de búsqueda y ordenación, por qué dos programas correctos pueden tardar cosas muy distintas y cuándo se estudian al aprender a programar.

Definición rápida

Son los procedimientos clásicos para encontrar un dato dentro de una lista y para colocar una lista en orden, y se diferencian entre sí por cuánto trabajo necesitan.

Los algoritmos de búsqueda y ordenación son los procedimientos clásicos para dos tareas que aparecen en todos los programas: encontrar un dato dentro de una lista y colocar una lista en orden. Es la última parte del recorrido cuando se aprende a programar, y llega después de tener soltura con bucles y arrays.

La idea, sin código

Imagina un listado de mil nombres y quieres saber si uno está.

  • Si el listado está desordenado, no hay más remedio que mirar uno por uno hasta encontrarlo. En el peor caso, mil comprobaciones. Eso es la búsqueda lineal.
  • Si el listado está ordenado, puedes abrirlo por la mitad, ver si tu nombre va antes o después, y tirar la mitad que no sirve. Repites y vuelves a tirar la mitad. Con mil nombres bastan unas diez comprobaciones. Eso es la búsqueda binaria, y es exactamente lo que hacías con un diccionario de papel.

Mismo resultado, mismo programa «correcto», cien veces menos trabajo. Ahí está el motivo de que existan estos temas: elegir bien la estrategia importa más que optimizar los detalles.

Los algoritmos de ordenación resuelven la otra mitad del problema: dejar la lista en orden para poder aprovechar después búsquedas rápidas. Los más didácticos comparan elementos por parejas e intercambian los que están al revés hasta que no queda nada por mover.

Por qué se estudian si el lenguaje ya los trae

Porque en la práctica usarás la función de ordenación que trae el lenguaje, y ese no es el punto. Lo que se aprende al estudiarlos es a razonar sobre el coste de tu propio código: notar cuándo una solución que funciona con diez datos se vuelve inviable con cien mil, y saber qué la hace lenta.

Esa forma de pensar es la que separa a quien «consigue que funcione» de quien escribe programas capaces de aguantar datos reales. Y es también la que permite juzgar el código que hoy genera una IA: ver si el enfoque es razonable o solo aparenta serlo.

Dónde se practica

Este es material del módulo 7 del curso, el penúltimo. Allí se implementan paso a paso la búsqueda lineal, la búsqueda binaria, dos algoritmos de ordenación y la recursión, cada uno con su ejercicio autocorregido y su explicación razonada; los tests incluyen los casos donde estas implementaciones suelen romperse.

Si estás empezando, el orden importa: primero qué es un algoritmo, después variables, condicionales, bucles y funciones, y esto al final. Puedes ver la secuencia completa en el temario.

Preguntas frecuentes

¿Qué diferencia hay entre búsqueda lineal y búsqueda binaria?

La lineal mira los elementos uno por uno desde el principio. La binaria aprovecha que la lista está ordenada para descartar la mitad de los candidatos en cada comprobación, así que necesita muchísimos menos pasos.

¿Hace falta saber esto para programar?

Para escribir tus primeros programas, no. Se estudia después de dominar variables, condicionales, bucles y funciones, y sirve para entender por qué dos soluciones correctas pueden tener rendimientos radicalmente distintos.

¿No basta con usar el sort que ya trae el lenguaje?

En el día a día sí, y es lo recomendable. Estudiar los algoritmos clásicos no es para reimplementarlos, es para aprender a razonar sobre el coste de lo que escribes.