Big O Complexity Visualizer
Visualiza y compara complejidades algorítmicas en tiempo real
Gráfica Comparativa
Operaciones para n = 100
| Complejidad | Operaciones | Tiempo Estimado* | Ejemplos |
|---|
*Asumiendo 1 operación = 1 nanosegundo
Ejemplos de Algoritmos
Constante
- Acceso a array por índice:
arr[5] - Inserción en hash table
- Push/Pop en stack
- Operaciones aritméticas básicas
El tiempo es siempre el mismo, sin importar el tamaño de entrada.
Logarítmica
- Búsqueda binaria
- Operaciones en árboles balanceados (AVL, Red-Black)
- Skip lists
- Búsqueda en heap
Divide el problema a la mitad en cada paso. Muy eficiente.
Lineal
-
Recorrer un array:
for (let i = 0; i < n; i++) - Búsqueda lineal
- Encontrar el mínimo/máximo
- Copiar un array
El tiempo crece proporcionalmente al tamaño de entrada.
Lineal-Logarítmica
- Merge Sort
- Quick Sort (promedio)
- Heap Sort
- Divide y conquistarás eficiente
Algoritmos de ordenamiento eficientes. El mejor caso general.
Cuadrática
- Bubble Sort
- Selection Sort
- Insertion Sort
- Dos loops anidados sobre n
Evitar con grandes datasets. OK para n pequeño (~100).
Exponencial
- Fibonacci recursivo sin memoization
- Subconjuntos de un conjunto (power set)
- Torres de Hanoi
- Backtracking sin poda
Prácticamente imposible para n > 30. Requiere optimización.
Tips para Optimizar tu Código
Usa estructuras de datos apropiadas
Un HashMap puede convertir O(n) en O(1) para búsquedas. Los sets son perfectos para verificar existencia.
Evita loops anidados innecesarios
Dos loops de O(n) son mejor que uno de O(n²). Considera usar hash maps para eliminar el segundo loop.
Aprende divide y conquistarás
Dividir el problema a la mitad (O(log n)) es muchísimo mejor que revisar todo (O(n)).
Memoization para recursión
Guarda resultados calculados previamente. Puede convertir O(2ⁿ) en O(n).
El mejor algoritmo depende del contexto
Para n pequeño (~10), O(n²) puede ser más rápido que O(n log n) por el overhead.
Mide en tu caso real
Big O es teórico. Siempre haz benchmarks con tus datos reales para confirmar.