Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. var hSize = 0
  2.  
  3. fun swapPlaces(l: ArrayList<Double>, i: Int, largest: Int) {
  4. val temp = l.get(i)
  5. l.set(i, l.get(largest))
  6. l.set(largest, temp)
  7. }
  8.  
  9. fun heapify(l: ArrayList<Double>, i: Int) {
  10. val left = i * 2
  11. val right = i * 2 + 1
  12. var largest = 0
  13. if(left <= hSize - 1 && l.get(left) > l.get(i)) {
  14. largest = left
  15. } else {
  16. largest = i
  17. }
  18. if(right <= hSize - 1 && l.get(right) > l.get(largest)) {
  19. largest = right
  20. }
  21. if (largest != i) {
  22. swapPlaces(l, i, largest)
  23. heapify(l, largest)
  24. }
  25. }
  26.  
  27. fun buildHeap(l: ArrayList<Double>) {
  28. val hSize = l.size
  29. for (i in hSize/2 downTo 1) {
  30. heapify(l, i)
  31. }
  32. }
  33.  
  34. vikeneb:
  35. buildHeap(l)
  36. for (i in l.size - 1 downTo 1) {
  37. swapPlaces(l, i, 0)
  38. hSize--
  39. heapify(l, 0)
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement