Guest User

Untitled

a guest
Oct 22nd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. Array.prototype.swap = function(x,y) {
  2.  
  3. if(this[x] == undefined || this[y] == undefined) return;
  4.  
  5. var temp = this[x];
  6. this[x] = this[y];
  7. this[y] = temp;
  8.  
  9. };
  10.  
  11. var MaxHeapify = function(A,i) {
  12.  
  13. var l = 2*i;
  14. var r = 2*i +1;
  15. var largest = i;
  16. if(l <= heap_size && A[l] > A[largest]) {
  17. largest = l;
  18. }
  19. if(r <= heap_size && A[r] > A[largest]) {
  20. largest = r;
  21. }
  22. if (largest != i) {
  23. A.swap(i,largest);
  24. MaxHeapify(A,largest);
  25. }
  26.  
  27.  
  28. };
  29.  
  30. var BuildMaxHeap = function(A) {
  31.  
  32. var middle = Math.floor(A.length / 2);
  33. for(var i=middle; i>=1;i--) {
  34. MaxHeapify(A,i);
  35. }
  36.  
  37.  
  38. };
  39.  
  40. var HeapSort = function(A) {
  41.  
  42. BuildMaxHeap(A);
  43. for(var i=A.length;i>=2;i--) {
  44. A.swap(1,i);
  45. heap_size--;
  46. MaxHeapify(A,1);
  47.  
  48. }
  49.  
  50. };
  51.  
  52. var arr = [null,4,8,1,3,2,15,9,10,14,8,7];
  53. var heap_size = arr.length;
  54. HeapSort(arr);
  55.  
  56. console.log(arr);
Add Comment
Please, Sign In to add comment