The basic idea of Huffman encoding is that more frequent characters are represented by fewer bits. With the ASCII system, each character is represented by eight bits (one byte). But with the Huffman tree, the most-often-repeated characters require fewer bits. For example, if I wanted to send "Mississippi_River" in ASCII, it would take 136 bits (17 characters × 8 bits). If I wanted to send that same message using Huffman coding, it would take 46 bits, which is 66% more efficient. Using this example, this Demonstration gives a step-by-step analysis to get to the binary output.

Huffman coding is a data representation system used for lossless data compression. It significantly decreases the total number of bits used. David A. Huffman, while an ScD student at MIT, created this algorithm in order to get out of his final exam.

This was a project for Advanced Topics in Mathematics II, fall 2016, Torrey Pines High School, San Diego, CA.