1function heapSort(arr) {
2 for (let i = n/2-1; i >= 0; i--) heapify(n, i);
3 for (let end = n-1; end > 0; end--) {
4 swap(0, end);
5 heapify(end, 0);
6 }
7}
8function heapify(size, root) {
9 let largest = root;
10 const l = 2*root+1, r = 2*root+2;
11 if (l < size && arr[l] > arr[largest]) largest = l;
12 if (r < size && arr[r] > arr[largest]) largest = r;
13 if (largest !== root) { swap(root, largest); heapify(size, largest); }
14}