I. Complejidad de Algoritmos
1. Calcular el tiempo de ejecucin T(n) para el algoritmo Cosa(n,A). Identifique claramente el tiempo
que consider para cada instruccin.
PROCEDURE Cosa(n: integer;A: array [0..n, 0..n] of integer);
var
i, j: integer;
begin
i:= 1;
repeat
A[i, 0]:= 0;
for j:= 1 to i do begin
A[i, j]:= 0;
Rec (i);
end;
i:= i+1;
until i>=n;
end;
2. Calcular el tiempo de ejecucin T(n) y orden O para el algoritmo DivVenc(i,j), considerando que el
costo de la funcin Operacin es 1 y que la entrada inicial es i=1 y j=n. Identifique claramente el
tiempo que consider para cada instruccin.
PROCEDURE DivVenc (i, j: integer)
PROCEDURE Combina (i, j: integer)
if (i = j) then
for k:= i to j do
Combina (i, j);
for q:= i to j do
else begin
Operacion(i, j, k, q);
m:= ( i+j ) / 2;
a:= ( j i ) / 4;
DivVenc (i, m);
DivVenc (i+a, m+a);
DivVenc (m+1, j);
Combina (i, j);
end;
3.
Calcular el tiempo de ejecucin y Orden de la funcin misterio, asuma la declaracin de
variables con costo cero.
int misterio(int n){
int i,j,k,s;
s:=0;
for(i=1; i<n; i++)
for(j=i+1; j<=n; j++)
for(k=1; k<=j; k++)
s=s+2;
return s;
}
4.
Calcular el tiempo de ejecucin T(n) para el algoritmo Primero(n). Identifique claramente el
tiempo que consider para cada instruccin.
PROCEDURE Primero (n: integer);
var
i: integer;
acum: real;
begin
if n>0 then begin
acum:= 0;
for i:= 1 to 2 do
acum:= acum+Segundo(n);
write (acum);
end;
end;
5.
7. Suponga que la entrada de un cierto problema P tiene tamao n para resolverlo se encuentra en la
literatura las siguientes alternativas:
Alternativa A: algoritmo de tiempo On nlogn2n
Alternativa B: transformarlo en otro problema para el cual se conoce un algoritmo de tiempo
On3 n2 n , la transformacin demora On log n2
Alternativa C: modelarlo en un rbol binario de n niveles y ejecutar por cada nodo del rbol un
algoritmo de tiempo On2 Qu alternativa escoge Ud.?
8.
13.
Suponga que la entrada de un cierto problema P tiene tamao n para resolverlo se encuentra en
la literatura las siguientes alternativas:
Alternativa A: algoritmo de tiempo
Alternativa B: transformarlo en otro problema para el cual se conoce un algoritmo de tiempo
la transformacin demora
Alternativa C: modelarlo en un rbol binario de n vrtices y ejecutar por cada nivel del rbol un
algoritmo de tiempo
Qu alternativa escoge usted?
14.