Buenas,
Tengo algunas dudas:
Sobre el 1 hice esta demostración basándome en el ejercicio resuelto el año pasado, pero aquí no se si es correcto afirmar el paso dos tal cual como lo hice en la cota superior, y si la demostración para la cota inferior esta bien.
Sobre el 2 parte b, no entiendo porque sería falso, aplicando el mismo argumento de la parte a lo podría demostrar(esto me dice que mi demostración del a debe estar mal).
Gracias
Ej 1
Cota superior:
1)cada ejecución del paso 4 requiere O(1).
2) cada ejecución del paso 3, realiza n-1 sumas, es decir menos de n sumas.
3)Los ciclos de los pasos 1 y 2 no se repiten mas de n veces cada uno,
entonces los pasos 3 y 4 no se repiten más de n^2 veces en total.
Sea T3(n) y T4(n) los tiempos totales en todas las ejecuciones de los pasos
3 y 4 respectivamente.
De 1) y 3): T4(n)=O(n^2) (no voy a ejecutar mas de n^2 veces algo que es O(1))
De 2) y 3): T3(n)=O(n^3) (pq cada vez que ejecuto el paso 3 no tengo que hacer mas de n sumas y esto no lo hago mas de n^2 veces)
Entonces T3(n)+T4(n)=O(n^3)
cota inferior:
cada ejecución realiza n-1 sumas, que se repiten para j entre 1 y n , que a su vez se repiten con i variando entre 1 y n.
Sea s(i) la cantidad de sumas para cada valor de i.
s(i) es la sumatoria de j=1 hasta n de n-1 sumas , por lo que s(i)=n(n-1).
Si llamamos N(n) a la cantidad de sumas totales tenemos que N(n)=n^2(n-1)
Por lo tanto N(n) es omega(n^3)
Como el tiempo del algoritmo esta acotado tanto inferiormente como superiormente por n^3 entonces la función buscada es f(n)= n^3.
Ej 2
a) Cada elemento se imprimirá una sola vez ya que no se vuelve a visitar por el algoritmo una vez que se imprimió. Pero sólo hay m elementos, por lo que hay m iteraciones y cada iteración lleva una cantidad de tiempo constante de trabajo, por lo que el tiempo total de ejecución es O(m).