Programación · Capítulo 21

Algoritmos y Estructuras de Datos

Los conceptos fundamentales que todo programador debe dominar: cómo organizar datos y resolver problemas eficientemente.


¿Qué es un Algoritmo?

Un algoritmo es una secuencia ordenada de pasos para resolver un problema. La eficiencia de un algoritmo se mide en tiempo (velocidad) y espacio (memoria usada).

Notación Big O: Describe cómo crece el tiempo de ejecución según el tamaño de los datos. O(1) es constante, O(n) es lineal, O(n²) es cuadrático (mucho más lento con datos grandes).

Estructuras de Datos Comunes

EstructuraUso Principal
ArrayLista ordenada de elementos con acceso por índice
Lista enlazadaElementos conectados por punteros, inserción eficiente
Pila (Stack)Último en entrar, primero en salir (LIFO)
Cola (Queue)Primero en entrar, primero en salir (FIFO)
Árbol binarioBúsqueda y ordenamiento eficiente
Ejemplo práctico: Buscar un elemento en un array desordenado es O(n) — revisas uno por uno. Buscarlo en un árbol binario ordenado es O(log n) — mucho más rápido con muchos datos.

Algoritmos de Ordenamiento

Bubble Sort (simple, O(n²)), Quick Sort (eficiente, O(n log n) en promedio) y Merge Sort (estable, O(n log n)) son los algoritmos de ordenamiento más estudiados.

Resumen