Los conceptos fundamentales que todo programador debe dominar: cómo organizar datos y resolver problemas eficientemente.
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).
| Estructura | Uso Principal |
|---|---|
| Array | Lista ordenada de elementos con acceso por índice |
| Lista enlazada | Elementos 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 binario | Búsqueda y ordenamiento eficiente |
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.