Complejidad algorítmica y Big O en JavaScript
Analiza crecimiento temporal y espacial, reconoce cotas y escenarios y compara soluciones con conteos y mediciones orientativas. Integra el análisis en consultas de estudiantes considerando preparación, memoria, mantenimiento y claridad.
Cinco clases completas con Codi para pasar de observar operaciones a justificar decisiones de implementación. Incluye tablas de crecimiento, esquemas conceptuales, ejemplos instrumentados, actividades con pistas y devoluciones y laboratorios con tamaños acotados.
La progresión aborda tamaño de entrada, cotas Big O, análisis de código, memoria adicional y escenarios. Ω y Θ se presentan como contexto sin demostraciones. El proyecto compara búsqueda lineal, binaria preparada y Map, además de recorridos, pares y transformaciones. Distingue supuestos del modelo de garantías del lenguaje y evita atribuir costos universales a métodos nativos.
Los playgrounds solo usan JavaScript síncrono y salidas permitidas. performance.now se reserva a un ejemplo autónomo de navegador, con resultados variables y sin tiempos inventados. Los ejemplos son independientes: utiliza contextos nuevos si tu consola conserva declaraciones anteriores. El código libre, las reflexiones y las decisiones personales no se evalúan automáticamente.
Qué aprenderás
Definir n, recursos, escenarios y modelo de operaciones. Distinguir conteos, tiempos medidos y cotas asintóticas. Reconocer O(1), O(log n), O(n), O(n log n), O(n²) y el crecimiento conceptual O(2ⁿ). Analizar recorridos secuenciales, anidados, dependientes y auxiliares. Separar entrada, espacio de trabajo y salida. Distinguir mejor, promedio y peor caso de los tipos de cota O, Ω y Θ. Comparar búsquedas y preparación de estructuras sin asumir garantías universales de Map o sort. Medir de manera orientativa en navegador y reconocer sus limitaciones. Justificar una mejora correcta según volumen, frecuencia, memoria, mantenimiento y legibilidad.
Antes de empezar
Haber completado los cursos 01 a 15 de Fundamentos de Programación o conocer JavaScript con funciones, bucles, arrays, objetos, clases, Map, Set, búsquedas lineal y binaria y ordenamientos Bubble e Insertion. Se reutilizan depuración y pruebas de escritorio. No se requieren cálculo avanzado, demostraciones formales ni instalaciones.
Tu recorrido
5 clases para descubrir, practicar y repasar.
- Complejidad: observar el crecimiento del trabajo
Definir tamaño de entrada, operación contada y recursos considerados para comparar estrategias sin confundir conteos y tiempos.
- Big O: reconocer órdenes de crecimiento
Distinguir cotas constantes, logarítmicas, lineales y cuadráticas y contextualizar n log n y crecimiento exponencial.
- Analizar el código: límites, secuencias y llamadas
Derivar conteos y cotas de cinco funciones y reconocer cómo influyen límites, escenarios y costos auxiliares.
- Memoria y escenarios: espacio, mejor y peor caso
Estimar memoria auxiliar y de salida y separar cotas de crecimiento de los escenarios mejor, promedio y peor.
- Proyecto: comparar consultas y justificar una decisión
Analizar y comprobar un sistema de consultas con conteos, preparación, memoria y mediciones experimentales, justificando una alternativa según su uso.
Puedes practicar sin cuenta. Tu avance anónimo se pierde al recargar o salir; inicia sesión para guardarlo.
Entrar al curso →