AlgoPrecision

Greedy

Local Choice Visualizer

Watch greedy strategies sort, scan, select, merge, and reset state while each step updates the current result and complexity.

O(n log n) time / O(n) space
result: 4 nodesselected: 0
Adefault

5

frequency

Bdefault

9

frequency

Cdefault

12

frequency

Ddefault

13

frequency

Result

4 nodes

Time

O(n log n)

Space

O(n)

Step Note

Put all frequencies into a min-priority queue.

Details
function huffman(frequencies: Node[]) {
  const queue = minHeap(frequencies)
  while (queue.size > 1) {
    const first = queue.pop()
    const second = queue.pop()
    queue.push(merge(first, second))
  }
  return queue.pop()
}