Min Heap Construction Visualization

Normal
Heap Node
Comparing
Swapping
Processing
0
Comparisons
0
Swaps
0
Steps

Min Heap Construction Process

Click "Build Heap" to start the step-by-step visualization of constructing a min heap from the array.

The algorithm works by heapifying each non-leaf node starting from the last non-leaf node and moving up to the root.

function buildMinHeap(arr) {
    // Start from last non-leaf node and heapify each node
    const n = arr.length;
    for (let i = Math.floor(n / 2) - 1; i >= 0; i--) {
        heapify(arr, n, i);
    }
}

function heapify(arr, n, i) {
    let smallest = i;
    const left = 2 * i + 1;
    const right = 2 * i + 2;

    // Compare with left child
    if (left < n && arr[left] < arr[smallest]) {
        smallest = left;
    }

    // Compare with right child
    if (right < n && arr[right] < arr[smallest]) {
        smallest = right;
    }

    // If smallest is not the current node, swap and continue heapifying
    if (smallest !== i) {
        [arr[i], arr[smallest]] = [arr[smallest], arr[i]];
        heapify(arr, n, smallest);
    }
}