Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. # 2
  2. def heapify(value, heap1, heap2):
  3. try:
  4. value1, size1, depth1 = next(heap1)
  5. except StopIteration:
  6. value1, size1, depth1 = 999999999, 0, 0
  7.  
  8. try:
  9. value2, size2, depth2 = next(heap2)
  10. except StopIteration:
  11. value2, size2, depth2 = 999999999, 0, 0
  12.  
  13. size = size1 + size2 + 1
  14. depth = max(depth1, depth2) + 1
  15.  
  16. if size > 0:
  17. if value < value1 and value < value2:
  18. print(f'case 1: ({value}, {size}, {depth})')
  19.  
  20. yield (value, size, depth)
  21. yield heapify(value1, safely_next(heap1), safely_next(heap1))
  22. yield heapify(value2, safely_next(heap2), safely_next(heap2))
  23. return
  24.  
  25. if value1 < value and value1 < value2 and size1 > 0:
  26. print(f'case 2: ({value1}, {size}, {depth})')
  27.  
  28. yield (value1, size, depth)
  29. yield heapify(value, safely_next(heap1), safely_next(heap1))
  30. yield heapify(value2, safely_next(heap2), safely_next(heap2))
  31. return
  32.  
  33. if value2 <= value and value2 <= value1 and size2 > 0:
  34. print(f'case 3: ({value2}, {size}, {depth})')
  35.  
  36. yield (value2, size, depth)
  37. yield heapify(value1, safely_next(heap1), safely_next(heap1))
  38. yield heapify(value, safely_next(heap2), safely_next(heap2))
  39. return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement