Suponiendo que se nos da: cola
- prioridad implementado por el montón binario estándar H (implementado en la matriz de)
- n tamaño actual del montón
Hemos siguiente inserción propiedades:
- W (n) = peor caso (n) = Θ (lg n) (Theta). -> W (n) = Ω (lg n) y W (n) = O (lg n)
- A (n) = AverageCase (n) = Θ (lg n) (Theta). -> W (n) = Ω (lg n) y W (n) = O (lg n)
- B (n) = BestCase (n) = Θ (1) (Theta). -> W (n) = Ω (1) y W (n) = O (1)
Así que para todos los casos, tenemos
- T (n) = Ω (1) y T (n) = O (lg n)
peor caso es cuando, insertamos nuevo valor mínimo, por lo hasta-montón tiene que viajar rama conjunto.
BestCase es cuando, para el montón mínimo (montón con mínimo en la parte superior), insertamos el valor GRANDE (mayor en la rama actualizada) (por lo que el up-heap se detiene inmediatamente).
Ha pedido acerca serie de operaciones n en el montón que contiene n elementos ya, su tamaño crecerá
from n to 2*n
lo asintóticamente es ...
n=Θ(n)
2*n=Θ(n)
Lo que simplifica nuestras ecuaciones. (No tenemos que preocuparnos por el crecimiento de n, ya que su crecimiento es constante).
Por lo tanto, tenemos "para n inserciones" de la operación:
- Xi (n) = X_for_n_insertions (n)
- Wi (n) = Θ (n lg n)
- Ai (n) = Θ (n lg n)
- Bi (n) = Θ (n)
- que implica, para "todo caso":
- Ti (n) = Ω (n) y Ti (n) = O (n lg n)
P.S. Para mostrar símbolos Theta Θ, Omega Ω, debe tener UTF-8 instalado/ser compatible.
Creo que el tamaño del montón existente debería ingresar el resultado de alguna manera. –