Vous êtes sur la page 1sur 10

O

1
(n) O
2
(n) O = Operacin elemental
(O
1
) = (O
2
)
(t
1
) = (O
1
) = (O
2
) = (t
2
)
(t
1
) = (t
2
)
Misma eficiencia de algoritmos.
Como los dos algoritmos resuelven el mismo problema, el tiempo de los rdenes
coincide, ya que son operaciones elementales.
t
2
(t
1
) = t
1
(t
2
)
c1,c2
IR
+
: n n
0
IN, c
1
t
2
(n) t
1
(n) c
2
t
2
(n)
c
1

(n)

()
c
2





Que los dos algoritmos estn escritos en el mismo lenguaje, se ejecutan en la misma
mquina, con el mismo compilador, etc

Los algoritmos estn acotados superiormente, respectivamente, por un mltiplo de
n log
2
n y n
2
.
t
fusin
(1000) 1000 c
1
log
2
n 10
4
c
1
t
directo
(1000) 1000
2
c
2
= 10
6
c
2

()

()
=

()
c
1
y c
2
son muy parecidas, al ejecutarse en las mismas condiciones.
S.


Importara siempre, ya que si no, nos hubiesen salido otras proporciones. Para
comprobar los rdenes no importara, para la eficiencia, ya que todos los logaritmos
crecen de igual forma (tienen el mismo comportamiento asinttico).















Solucin al ejercicio:
Operacin crtica escogida: d |v*i+ v[j]|

= =

=+

=
+ + =

+ + + +

=
=


Por la regla del mximo.










Operacin crtica escogida: a[i,j] a[i,j] v (a[i,k] ^ a[k,j])

= =

=+

=
+ + =

=

=



Este ejercicio es muy similar al anterior, solo que tiene un sumatorio ms, por eso he
obviado la gran mayora de los pasos.











Operacin crtica escogida: v[n] < m

0 n = 1
t(n) =
t(n 1) +1 n > 1

Resolucin mediante ecuaciones de recurrencia:
t(n) = t(n - 1) +1 = t(n - 2) +2 = = t(n - i) +i
t(1) = t(n i) 1 = n i i = n 1
t(n - i) +i = t(n n + 1) + n 1 = t(1) + n 1 = n 1 (n)
t(n) (n)

En este problema no existen caso mejor ni peor, todos los casos son iguales, depende
del tamao del vector.










Operacin crtica escogida: v[n] < v[n 1]
Caso mejor:

0 n = 1
t
min
(n) = t
min
(n) (1)
1 n > 1

Caso peor:

0 n = 1
t
max
(n) =
t
max
(n 1) +1 n > 1

Resolucin mediante ecuaciones de recurrencia:
t
max
(n) = t
max
(n - 1) +1 = t
max
(n - 2) +2 = = t
max
(n - i) +i
t
max
(1) = t
max
(n i) 1 = n i i = n 1
t
max
(n - i) +i = t
max
(n n + 1) + n 1 = t
max
(1) + n 1 = n 1 O(n)
t
max
(n) O (n)
Caso promedio:
Probabilidad de que v[n] < v[n 1] = 1 P(v*n+ v*n 1]) = 1 -
1
n

n1
n


0 n = 1
(n) =
n1
n
(n 1) +1 n > 1
(n) =
n1
n
(n 1) +1 Multiplicando por n a ambos miembros:

(n 1) =
n1
n
[
n2
n1
n 2 +1]

(n - 2) =
n1
n

n2
n1

n3
n2
n 2 1 +1 +1 + 1] =


n3
n
n 3 +
n2
n1

n1
n
+
n1
n
+ 1 =


n3
n
n 3 +
n2
n

n1
n
+ 1

(n - 3) =
n1
n

n2
n1

n3
n2
[
n4
n3
n 3 1 +1 +1 +1] +1] =

n 4
n
n 4 +
n 3
n 2

n 2
n 1

n 1
n
+
n 2
n 1

n 1
n
+
n 1
n
=

n 4
n
n 4 +
n 3
n
+
n 2
n
+
n 1
n


(n) =
1

+ 1 +

(n) =
nn1
n
+ n n 1 =
1
n
(1) =
1
n
(n)











Operacin crtica escogida: p (i + j )/2
Caso peor:

0 n = 1
t
max
(n) =
t
max
(n /2) +1 n > 1

Resolucin mediante ecuaciones de recurrencia:
t
max
(n) = t
max
(n /2) +1 = t
max
(n/4) +2 = = t
max
(n/2
i
) +i
t
max
(1) = t
max
(n/2
i
) 1 = n/2
i
2
i
= n i = log
2
n
t
max
(n/2
i
) + i = t
max
(1) + log
2
n = log
2
n O(log
2
n)
t
max
(n) O (log
2
n)


















Operacin crtica escogida: v[ i ] > m

0 n = 1
t(n) =
t(n 1) + t
pos-max
(n) n > 1

t
pos-max
(n) = 1 =
n
i=2
n 1 (n)

0 n = 1
t(n) =
t(n 1) + n - 1 n > 1

Resolucin mediante ecuaciones de recurrencia:
t(n) = t(n - 1) + n - 1 = t(n - 2) + n 2 + n - 1 = = t(n - i) +
1
=0

t(1) = t(n i) 1 = n i i = n 1
t(n - i) +
1
=0
= t(1) +
n(n1)
2
=
n
2
n
2
(n
2
)
t(n) (n
2
)










Operacin crtica escogida: x < v[n]

0 n = 0
t(n) =
t(n 1) + t
mayores
(n) n > 0

0 n = 0
t
mayores
(n) =
t(n 1) + 1 n > 0

Resolucin mediante ecuaciones de recurrencia:
t(n) = t(n - 1) + 1 = = t(n - i) + i
t(1) = t(n i) 1 = n i i = n 1
t(n - i) + i = t(1) + n 1 = n 1 (n)

0 n = 1
t(n) =
t(n 1) + t(n 1) + n - 1 n > 1

Resolucin mediante ecuaciones de recurrencia:
t(n) = t(n - 1) + t(n 1) + n 1 = t(n - 2) + t(n 2) + n 2 +n - 1 = =
t(n - i) + t(n - i) +
1
=0

t(1) = t(n i) 1 = n i i = n 1
t(n - i) + t(n - i) +
1
=0
= t(1) + t(1) +
n(n1)
2
=
n
2
n
2
(n
2
)
t(n) (n
2
)














Operacin crtica escogida: marcar(x,n)

a)
0 n = 0
t(n) =
t(n 1) + t(n - 1) + 1 n > 0

t(n) = t(n 1) + t(n 1) + 1 = t(n-2) + t(n 2) + 2 = .. . = t(n i) + t(n i) + i
t(1) = t(n i) 1 = n i i = n 1
t(n i) + t(n i) + i = t(1) + t(1) + n 1 = n 1 (n)

b)
0 n = 0
t(n) =
t(n 1) + t(n - 1) + n n > 0

t(n) = t(n 1) + t(n 1) + n = t(n-2) + t(n 2) + 2n = ... = t(n i) + t(n i) + in
t(n i) + t(n i) + i = t(1) + t(1) + n (n 1) = n
2
n (n
2
)

Vous aimerez peut-être aussi