Publication Date



Technical Reports: UTEP-CS-09-12


As is well known -- the Huffman algorithm is a remarkably simple, and is a wonderfully illustrative example of the greedy method in algorithm design. However, the Huffman problem, which is to design an optimal binary character code (or an optimal binary tree with weighted leaves) is intrinsically technical, and its specification is ill-suited for students with modest mathematical sophistication.

This difficulty is circumvented by introducing an alternative 'precursor' problem that is easy to understand, and where this understanding can lead to student-devised solutions: how to merge k sorted lists of varying length together as efficiently as possible. Once students have solved this problem, they are better prepared to understand Huffman problem can be trivially reduced to it, and thus and why their merging algorithm solves it. Even the correctness argument is simplified by this approach.