¿Cómo se Usan los Logaritmos en la Programación Informática?

Moises Luna
3 min readNov 25, 2023
Hero image

Los logaritmos en la programación se usan para medir el rendimiento de los algoritmos. A continuación te explico como.

Un algoritmo puede considerarse una ’receta’ o una serie de instrucciones que se debe seguir para alcanzar un objetivo específico. Por ejemplo, la receta para hacer un burrito de frijol sería algo así:

1.- Calienta una sartén a fuego medio.

2.- Sofríe cebolla y ajo picados hasta que estén dorados.

3.- Agrega frijoles cocidos a la mezcla y revuelve bien.

4.- Condimenta con sal, pimienta y comino al gusto.

5.- Calienta tortillas de harina en otra sartén.

6 .- Rellena cada tortilla con la mezcla de frijoles.

7 .- Añade tus ingredientes favoritos, como queso, aguacate o salsa.

Este sería el ‘algoritmo’ para hacer un burrito de frijol. Ahora quizá tu podrías argumentar que hay maneras más eficientes. En vez de hacer los burritos con mi receta, hacerlos de la siguiente forma sería más rápido en caso de hacer 100 burritos:

1.- Preparar una cantidad grande de mezcla de frijoles de una vez.

2.- Calentar varias sartenes al mismo tiempo para acelerar el proceso de sofritura.

3.- Utilizar una prensa de tortillas para hacer múltiples tortillas simultáneamente.

4.- Organizar un área de montaje eficiente para ensamblar los burritos de manera rápida.

5.- Asignar tareas específicas a varias personas para aumentar la velocidad de producción.

Pasa lo mismo con los algoritmos. Hay distintas maneras de resolver problemas y para saber cuál es la más efectiva se usa algo que se llama Big O notation o notación de la gran O. Se llama así porque literalmente la notación se escribe con una ‘O’ al inicio.

Con esta notación puedes calcular la complejidad espacial y temporal de los algoritmos. Estos son términos elegantes para decir que un algoritmo gasta más espacio en la memoria de tu PC o es más rápido que otro algoritmo.

Algunas de las notaciones más comunes incluyen:

  • O(1): Este tipo de complejidad indica que el tiempo o espacio requerido por el algoritmo es constante, independientemente del tamaño de los datos de entrada. Es decir, la eficiencia no varía a medida que la entrada crece.
  • O(n): La complejidad lineal significa que el tiempo o espacio requerido por el algoritmo aumenta de manera proporcional al tamaño de los datos de entrada. Por ejemplo, si tienes una lista de elementos, el tiempo o espacio necesario aumentará en función del número de elementos en la lista.

Además de estas existen otras, incluyendo 🥁 O(log n). La notación O(log n) se refiere a una complejidad logarítmica. En términos simples, a medida que el tamaño de la entrada se duplica, el tiempo de ejecución del algoritmo solo aumenta en una cantidad constante.

Un ejemplo común de un algoritmo con complejidad O(log n) es la búsqueda binaria, donde en cada paso se reduce a la mitad el conjunto de datos a considerar.

Este tipo de complejidad es muy eficiente para conjuntos de datos grandes, ya que permite realizar operaciones rápidas incluso cuando la entrada es considerablemente grande. Y así se usan los logaritmos en programación 😁

--

--

Moises Luna

Escribiendo sobre tecnología, productividad y ser un eterno estudiante.