O(1) | Decifrando la Complejidad Constante

¡Hola de nuevo!

Retomando y complementando el post anterior sobre Notaciones Big O, hoy veremos uno de los algoritmos más sencillos pero muy eficaces (Aunque por ahí leí que ya no se utiliza mucho, es bueno conocerlo). Estamos hablando de O(1) o Complejidad Constante.

Este algoritmo se caracteriza por tener un tiempo de ejecución que no depende del tamaño de la entrada. Sin importar si tenemos 10 elementos o 10 millones, el tiempo que tardará en ejecutarse será siempre el mismo (o al menos, muy similar).

¿Por qué es importante O(1)?

Aunque suene muy sencillo, O(1) es fundamental para optimizar el rendimiento de nuestros programas. Imagina tener una función que se ejecuta miles de veces dentro de un bucle. Si esa función es O(1), el impacto en el tiempo total será mínimo. Pero si fuera O(n) (lineal), el tiempo se multiplicaría por cada elemento, ¡y tendríamos un problema!

Veamos algunos ejemplos prácticos en pseudocódigo para entender mejor cómo funciona O(1):

1. Acceder a un elemento de un array:

funcion obtenerElemento(array, indice):
  return array[indice]

No importa si el array tiene 10 o 10,000 elementos, acceder a uno específico por su índice siempre tomará el mismo tiempo.

2. Añadir un elemento al final de una lista enlazada:

funcion agregarElemento(lista, nuevoElemento):
  ultimoElemento = lista.ultimo
  ultimoElemento.siguiente = nuevoElemento

Siempre y cuando tengamos un puntero al último elemento, añadir uno nuevo al final es una operación constante.

3. Verificar si un número es par:

funcion esPar(numero):
  return (numero % 2 == 0)

Esta operación es independiente del valor del número. Siempre tomará el mismo tiempo calcular el resto de la división.

4. Obtener la clave de un diccionario (hash map):

funcion obtenerClave(diccionario, clave):
  return diccionario[clave]

Los diccionarios están diseñados para que la búsqueda de una clave sea extremadamente rápida, independientemente de cuántas claves haya en el diccionario.

5. Asignar un valor a una variable:

variable = 10

Aunque parezca trivial, esta operación básica es O(1). Asignar un valor a una variable siempre toma el mismo tiempo.

En resumen

O(1) es la notación Big O más eficiente que existe. Nos indica que el tiempo de ejecución de un algoritmo es constante, independientemente del tamaño de la entrada. Es crucial para optimizar el rendimiento de nuestros programas y comprender cómo escalarán a medida que crezcan los datos.

Espero que este post te haya resultado útil. En el siguiente artículo hablaremos sobre la notación O(n) o Complejidad Lineal, así que pendiente 😊📝

logo

© 2025 Yorch Webs

Instagram GitHub