Notación que describe la complejidad temporal o espacial de un algoritmo en el peor de los casos.
Mide cómo el rendimiento de un algoritmo escala con el tamaño de la entrada. Es fundamental para evaluar la eficiencia de algoritmos.
// Complejidades comunes ordenadas de mejor a peor // O(1) - Constante const primero = array[0]; // Siempre igual de rápido // O(log n) - Logarítmica function busquedaBinaria(arr, x) { /* divide y vencerás */ } // O(n) - Lineal array.forEach(item => console.log(item)); // O(n log n) - Log-lineal array.sort((a, b) => a - b); // Quicksort, Mergesort // O(n²) - Cuadrática for (let i = 0; i < n; i++) for (let j = 0; j < n; j++) { } // O(2^n) - Exponencial function fibonacci(n) { if (n <= 1) return n; return fibonacci(n-1) + fibonacci(n-2); }