Logaritmos
Logaritmos
Logaritmos
Algoritmos y
Estructura de
Datos I
1
Logaritmos
Al analizar los tiempos de ejecución de los distintos algoritmos, se pueden
encontrar algoritmos de distintos órdenes. Así, por ejemplo, si se quiere
buscar un elemento en una lista de n elementos, en el peor de los casos, se
deberá transitar por todos los elementos y el tiempo que se empleará será
de orden lineal O(n): se recorrerá cada uno de los elementos, de principio a
fin. Esto implica que, mientras más grande sea n, mayor será el tiempo de
ejecución y será un crecimiento proporcional al lote de los datos de entrada.
Pero, no todos los algoritmos son de orden lineal. Existen otros que
responden a órdenes de distintas funciones, como polinomios (cuadráticas,
cúbicas), exponenciales, logarítmicas, entre otras. Se concentrará en el caso
de los de orden logarítmico O(Log(n)).
Análisis matemático
Los logaritmos son operaciones en las que, dado un número real positivo a y
una base b, permiten calcular el exponente c de la potencia.
𝐿𝑜𝑔 𝑏 𝑎 = 𝑐 → 𝑎𝑐 = 𝑏 ; ∀𝑎 >0
𝐿𝑜𝑔 𝑘 𝑎
𝐿𝑜𝑔 𝑏 𝑎 = donde 𝑘 será la nueva base
𝐿𝑜𝑔 𝑘 𝑏
𝐿𝑜𝑔 2 𝑎
𝐿𝑜𝑔 𝑏 𝑎 = donde 𝑘 = 2 será la nueva base
𝐿𝑜𝑔 2 𝑏
𝐿𝑜𝑔 𝑎 𝑋
𝐿𝑜𝑔 𝑏 𝑋 =
𝐿𝑜𝑔 𝑎 𝑏
2
Sea:
𝐿𝑜𝑔 𝑎 𝑋 = 𝐴 → 𝑎 𝐴 = 𝑋
𝐿𝑜𝑔 𝑏 𝑋 = 𝐵 → 𝑏 𝐵 = 𝑋
𝑋 = 𝑋 → 𝑎 𝐴 = 𝑏𝐵
𝐿𝑜𝑔 𝑎 𝑎 𝐴 = 𝐿𝑜𝑔 𝑎 𝑏 𝐵
𝐴 . 𝐿𝑜𝑔 𝑎 𝑎 = 𝐵 . 𝐿𝑜𝑔 𝑎 𝑏
𝐴 = 𝐵 . 𝐿𝑜𝑔 𝑎 𝑏
Se despeja B
𝐴
𝐵=
𝐿𝑜𝑔 𝑎 𝑏
𝐿𝑜𝑔 𝑎 𝑋
𝐿𝑜𝑔 𝑏 𝑋 =
𝐿𝑜𝑔 𝑎 𝑏
3
función logarítmica no se verá muy afectada ante una duplicación de los
datos de entrada y es ahí donde radica su importancia.
Logaritmos en la práctica
En la vida diaria, se enfrentarán distintos problemas que podrán ser
resueltos haciendo uso de logaritmos. A continuación, se mencionan
ejemplos reales en el ámbito informático que serán de gran utilidad.
Sucede que, dentro de una IP, parte de ella se usa para identificar un número
de red y la última parte, para identificar un número de host.
Se supone que se quiere crear una red para 150 hosts. Para ello, se necesita
saber cuántos bits se deben usar de la IP para poder representar a todos los
hosts y evitar usar más bits de los necesarios, que luego no se utilicen.
Para resolver este problema, los logaritmos surgen como una gran solución.
𝐻𝑜𝑠𝑡𝑠 = 150
4
𝐿𝑜𝑔2 150 ≅ 8
27 = 128 28 = 256
Búsqueda binaria
1 8 2 6 4 7
1 2 4 6 7 8
5
Se llama búsqueda binaria, debido a que va subdividiendo la estructura de
datos en dos partes y desecha aquellas en donde no se encuentra el valor
que se busca. Esta premisa indica que, en el peor de los casos, se deberán
realizar Log(n) iteraciones hasta llegar al valor x buscado. En la próxima
lectura, se abordará el análisis de los algoritmos de búsqueda estática y se
adentrará en este método de búsqueda.
6
Figura 1: Altura de un árbol
En el peor de los casos, un árbol se puede asemejar a una lista y tener altura
n:
7
Fuente: elaboración propia.
Este caso es un árbol binario, dado que cada padre no tiene más de dos hijos.
Sin embargo, se dice que es el peor caso, debido a que no se diferencia de
una lista, cuando el objetivo de un árbol binario es lograr la organización de
un árbol para facilitar la búsqueda de sus elementos.
𝐴𝑙𝑡𝑢𝑟𝑎 = 𝐿𝑜𝑔2 (𝑛 + 1)
8
Referencias
Weiss, M. A. (2013). Análisis de algoritmos. En M. Martín-Romo (Ed.), Estructuras
de datos en Java (pp. 202-204). Madrid, ES: Pearson.