p = 0; i = 0; j = 0; k = 0; size = 0
function LocalHeap(i){
var j = i;
if ((2*i <= size)&&(arr[2*i]>arr[i]))
j = 2*i;
if ((2*i+1 <= size)&&(arr[2*i+1]>arr[j]))
j = 2*i+1;
if (i != j) {
var x = arr[i]; arr[i] = arr[j]; arr[j] = x;
if (2*j <= size) LocalHeap(j);
}
};
function MakeHeap() {
for(var k = Math.floor(size/2); k >= 1; k--) {
LocalHeap(k);
}
};
function HeapSort(){
MakeHeap();
while (size > 1) {
var x = arr[size]; arr[size] = arr[1]; arr[1] = x;
size--;
if (size > 1) LocalHeap(1);
}
}
|