Home Manual Reference Source Test

src/core/makeheap.js

import siftdown from './siftdown.js';

/**
 * Builds a heap in O(n) operations.
 *
 * @param {int} arity arity of the heap
 * @param {function} compare the comparison function
 * @param {function} swap the swap function
 * @param {array} a the array where the heap is stored
 * @param {int} i left inner bound
 * @param {int} j right outer bound
 *
 */

export default function makeheap(arity, compare, swap, a, i, j) {
	for (let k = (i + (j - i + arity - 2) / arity) | 0; k-- > i; ) {
		siftdown(arity, compare, swap, a, i, j, k);
	}
}