Advertisement
elcocodrilotito

Heaps 1

May 26th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.82 KB | None | 0 0
  1. #Daniel Bedialauneta
  2. #Ejercicio 1
  3. def flotar(h,x): #Supongo la primera posición reservada al numero de elementos
  4.     h[0]+=1
  5.     h.append(x)
  6.     i=h[0]//2
  7.     j=h[0]
  8.     while i>0 and x>h[i]:
  9.         h[j]=h[i]
  10.         i=i//2
  11.         j=j//2
  12.     h[j]=x
  13.  
  14.  
  15.  
  16. """
  17. COMPLEJIDAD TEMPORAL
  18. En un heap supongamos que hay k niveles, de 1 a k (no cuento el 0, cuento normal)
  19. Si hay k niveles, hay (2^k)-1 nodos.
  20. Y la cantidad de nodos es nuestro problema n, luego
  21. n=(2^k)-1
  22. Ahora bien, en esta función, el elemento que queremos hacer flotar,
  23. como máximo, va a flotar a través de k niveles, las mismas veces que
  24. se repite el while. Luego si intentamos tratar de despejar k, es decir,
  25. el número de veces que se repite el while, tenemos:
  26. n+1=2^k
  27. log2(n+1)=k
  28. El coste temporal de la función es:
  29. t(n) = 1+k = 1+log2(n+1)
  30. """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement