Skip to main content

Eficiencia, Espacio y Tiempo

Cuando hablamos de estructuras de datos o algoritmos, eficiencia se refiere a qué tan bien utilizan los recursos computacionales (como tiempo y memoria). Evaluar la eficiencia nos permite tomar decisiones informadas sobre qué estructura o algoritmo es el más adecuado para una tarea específica.

Complejidad temporal (tiempo)

La complejidad temporal indica cuánto tarda un algoritmo en ejecutarse, según la cantidad de datos de entrada (n). Se expresa usando la notación Big O:

NotaciónEjemplo de algoritmoDescripción
O(1)Acceso directo a un arregloTiempo constante
O(log n)Búsqueda binariaTiempo logarítmico
O(n)Recorrido de una listaTiempo lineal
O(n log n)Merge sortTiempo subcuadrático
O(n^2)Burbujas (Bubble Sort)Tiempo cuadrático

Complejidad espacial (espacio)

La complejidad espacial analiza la cantidad de memoria adicional que un algoritmo necesita. Por ejemplo:

  • Guardar datos temporales o estructuras auxiliares (pilas, tablas)
  • Uso de recursión, donde cada llamada consume memoria de pila.

"Evaluar tanto el tiempo de ejecución como el consumo de memoria es esencial para sistemas donde los recursos son limitados o el rendimiento es crítico" (Sedgewick & Wayne, 2011).

Aplicaciones prácticas

EscenarioRelevancia de análisis de eficiencia
Juegos en líneaTiempo de respuesta en tiempo real
Motores de búsquedaOptimizar búsquedas en grandes volúmenes
Dispositivos móvilesUso eficiente de memoria limitada
Inteligencia artificialProcesamiento rápido de grandes datasets

Representación visual

Notación Big O

Comparación de tiempos de ejecución teóricos

Input (n) → █ Tiempo

O(1): █
O(log n): ███
O(n): ███████
O(n log n):███████████
O(n²): █████████████████

Ejemplos

TimeSpaceAnalyzer.java
import java.util.ArrayList;
import java.util.List;

public class TimeSpaceAnalyzer {
public static int sumLinear(List<Integer> list) {
int total = 0;

for (int num : list) {
total += num;
}

return total;
}

public static int[][] createMatrix(int n) {
return new int[n][n]; // Espacio O(n^2)
}
}

Referencias