Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - Array.prototype.swap = function(x,y) {
 - if(this[x] == undefined || this[y] == undefined) return;
 - var temp = this[x];
 - this[x] = this[y];
 - this[y] = temp;
 - };
 - var MaxHeapify = function(A,i) {
 - var l = 2*i;
 - var r = 2*i +1;
 - var largest = i;
 - if(l <= heap_size && A[l] > A[largest]) {
 - largest = l;
 - }
 - if(r <= heap_size && A[r] > A[largest]) {
 - largest = r;
 - }
 - if (largest != i) {
 - A.swap(i,largest);
 - MaxHeapify(A,largest);
 - }
 - };
 - var BuildMaxHeap = function(A) {
 - var middle = Math.floor(A.length / 2);
 - for(var i=middle; i>=1;i--) {
 - MaxHeapify(A,i);
 - }
 - };
 - var HeapSort = function(A) {
 - BuildMaxHeap(A);
 - for(var i=A.length;i>=2;i--) {
 - A.swap(1,i);
 - heap_size--;
 - MaxHeapify(A,1);
 - }
 - };
 - var arr = [null,4,8,1,3,2,15,9,10,14,8,7];
 - var heap_size = arr.length;
 - HeapSort(arr);
 - console.log(arr);
 
                    Add Comment                
                
                        Please, Sign In to add comment