Está en la página 1de 20

Punto 1.

Si se tienen las siguientes funciones de tiempo de ejecución, establezca para que tamaño de
conjunto de datos de entrada, los algoritmos son igualmente eficientes, menos eficientes o más
eficientes. Se debe comparar la función uno a uno.

a. 2n3 + n + 10

b. 2 log2 n + 2n

c. n log2 n - n

d. 5n2 +100

e. 4n – 220

Herramienta usada: https://www.mathway.com/es/Calculus

f(x)= 2n3 + n + 10

g(x)= 2 log2 n + 2n

Los tiempos de ejecución de las anteriores funciones no son iguales en algún valor, empiezan en
valores de datos diferentes, Luego la función f(x)= 2n3 + n + 10 genera un número mayor de líneas
de código utilizadas, por lo tanto, es menos eficiente que 2 log2 n + 2n.
f(x)= 2n3 + n + 10

g(x)= n log2 n – n

Los tiempos de ejecución de las anteriores funciones no son iguales en algún valor, empiezan en
valores de datos diferentes, Luego la función f(x)= 2n3 + n + 10 genera un número mayor de líneas
de código utilizadas en un mayor tiempo de ejecución, mientas que la función g(x)= n log2 n – n
genera una mayor cantidad de datos en menos tiempo.
f(x)= 2n3 + n + 10

g(x)= 5n2 +100

Los tiempos de ejecución de las anteriores funciones no son iguales en algún valor, aunque son
muy cercanos se nota que la función f(x)= 2n3 + n + 10 genera un número mayor de líneas de
código utilizadas en un mayor tiempo de ejecución, mientas que la función g(x)= 5n2 +100 genera
una mayor cantidad de líneas de código en un menor tiempo.
f(x)= 2n3 + n + 10

g(x)= 4n – 220

Los tiempos de ejecución de las anteriores funciones no son iguales en algún valor, empiezan en
valores y tiempos de ejecución diferentes, Luego la función f(x)= 2n3 + n + 10 genera un número
mayor de líneas de código utilizadas en un mayor tiempo de ejecución, mientas que la función
g(x)= 4n – 220 genera una mayor cantidad de líneas de código en un menor tiempo.

f(x)= 2 log2 n + 2n

g(x)= n log2 n - n

Los tiempos de ejecución de las anteriores funciones empiezan en valor 0, Luego la función f(x)=
2 log2 n + 2n analiza un número mayor de líneas de código analizadas en un tiempo de ejecución
igual a la función g(x)= n log2 n - n, es más eficiente la función f(x)
f(x)= 2 log2 n + 2n

g(x)= 5n2 +100

Los tiempos de ejecución de las anteriores funciones no son iguales empiezan en datos y tiempos
diferentes, Luego la g(x)= 5n2 +100 es más eficiente que la función f(x), analiza un número mayor
de líneas de código en el mismo tiempo.

f(x)= 2 log2 n + 2n

g(x)= 4n – 220
Los tiempos de ejecución de las anteriores funciones no son iguales empiezan en datos diferentes,
Luego la f(x)= 2 log2 n + 2n es más eficiente que la función g(x)= (x)= 4n – 220, analiza un número
mayor de líneas de código en el mismo tiempo.

f(x)= n log2 n - n

g(x)= 5n2 +100

Los tiempos de ejecución de las anteriores funciones no son iguales empiezan en datos diferentes,
Luego la f(x)= n log2 n - n es más eficiente que la función g(x)= 5n2 +100, analiza un número
mayor de líneas de código en el mismo tiempo, empieza analizar en un punto inicial una gran
cantidad de valores superior a la función g(x).

f(x)= n log2 n - n

g(x)= 4n – 220
Los tiempos de ejecución de las anteriores funciones son iguales para un conjunto de datos que
empieza en 68, Luego la función f(x)= n log2 n – n es más eficiente que la función g(x)= 4n – 220
, para datos superiores a 64 ya que toma un menor tiempo de ejecución para analizar los datos.

f(x)= 5n2 +100

g(x)= 4n – 220

Los tiempos de ejecución de las anteriores funciones no son iguales para un conjunto de datos,
Luego la función g(x)= 4n – 220 es más eficiente que la función f(x)= 5n2 +100, en el mismo
tiempo analiza líneas de código que contienen un mayor número de datos.

n Log2(n) n log (n) n^2 2^n


2 1 0.60 4 4
4 2 2.40 16 16
8 3 7.22 64 256
16 1.20 19.62 256 65536
32 5 48.16 1024 4294967296

La función más eficiente es log2

Punto 2.

Para las siguientes funciones de tiempo de ejecución, demuestre si cada una de ellas es del orden
de las demás.

a. 4n3

b. 5n2 + 10n
c. 2log2 (n) + 8n

d. 9n + 300

e. 2n log(n)

Herramienta usada para regla de l'hopital online: https://es.symbolab.com/solver/limit-calculator

 4n3 y 5n2 + 10n

Por lo tanto n^3 no es del orden de x^2+10n y x^2+10n si está en el orden en el orden de n^3
 4n3 y 2log2 (n) + 8n

Por lo tanto n^3 no es del orden 2log2 (n) + 8n y 2log2 (n) + 8n si está en el orden en el orden de
n^3
 4n3 y 9n + 300

Por lo tanto n^3 no es del 9n + 300 y 9n + 300 si está en el orden en el orden de n^3
 4n3 y 2n log(n)

Por lo tanto n^3 no es del 2n log(n) y 2n log(n) si está en el orden en el orden de n^3
 5n2 + 10n y 2log2 (n) + 8n

Por lo tanto 5n2 + 10n no es del orden 2log2 (n) + 8n y 2log2 (n) + 8n si está en el orden en el
orden de 5n2 + 10n
 5n2 + 10n y 9n + 300

Por lo tanto 5n2 + 10n no es del orden 9n + 300 y 9n + 300si está en el orden en el orden de 5n2 +
10n
 5n2 + 10n y 2n log(n)

Por lo tanto 5n2 + 10n no es del orden 2n log(n) y 2n log(n)si está en el orden en el orden de 5n2
+ 10n
 2log2 (n) + 8n y 9n + 300

Por lo tanto 2log2 (n) + 8n si es del orden 9n + 300

 2log2 (n) + 8n y 2n log(n)


Por lo tanto 2log2 (n) no es del orden 8n y 2n log(n)

 9n + 300 y 2n log(n)
Por lo tanto 9n + 300 no es del orden 2n log(n)

Punto 3.
¿Cuántos datos procesaría los algoritmos del punto 2, si el tiempo límite de proceso es de
108 unidades de tiempo?, de acuerdo con la tabla, haga un análisis para deducir cuál de los
algoritmos es más eficiente.

Función Valor n Tiempo (ms)


4n3 10^8 4x10^24
5n2 + 10n 10^8 5x10^16
2log2 (n) + 8n 10^8 800000053.2
9n + 300 10^8 900000300
2n log(n) 10^8 1600000000

Función Valor n Tiempo (ms)


4n3 108 5038848
5n2 + 10n 108 59400
2log2 (n) + 8n 108 877.50
9n + 300 108 1272
2n log(n) 108 493.21

El algoritmo más eficiente para valores muy grandes y el tiempo de ejecución con limite 108 es
2n log(n).

Punto 4.

Suponga que tiene las siguientes funciones de base e inducción. ¿Deduzca el tiempo de
ejecución y el orden de complejidad para cada uno de los casos? En lo posible deduzca el
resultado por el método de repeticiones sucesivas.
T(1) = O(1)

T(n) = 2T(n-1) + O(n)

T(1)= O(1)

T(n) = 2T(n/2) + O(n)

T(1)= O(1)

T(n) = 2T(n/2) + n2b

T(1)= O(1)
T(n) = 4T(n/2) + 2(n/2)

T(1)= O(n)

T(n) = 2T(n-1) + n2b

También podría gustarte