Nptel Week6 Module5 Greedy Huffman Code
Nptel Week6 Module5 Greedy Huffman Code
Week 6, Module 5
Encoding of e is 0, t is 1, a is 01
Prefix code
x a b c d e
Example: {a,b,c,d,e}
Prefix code
x a b c d e
Example: {a,b,c,d,e}
Prefix code
x a b c d e
Example: {a,b,c,d,e}
Prefix code
x a b c d e
Example: {a,b,c,d,e}
Prefix code
x a b c d e
Example: {a,b,c,d,e}
Prefix code
x a b c d e
Example: {a,b,c,d,e}
2.25
2.23
b d a
Prefix code: only leaves
encode letters e c
Codes as trees
Encoding can be viewed x a b c d e
as a binary tree
E(x) 11 10 01 001 000
c b a
Prefix code: only leaves
encode letters e d
Codes as trees …
Full tree: Every node has 0 or 2 children
Codes as trees …
Claim 2: In an optimal tree, if a leaf labelled x is at a
smaller depth than a leaf labelled y, then f(y) ≤ f(x)
x a b c de
f(x) 0.32 0.25 0.20 0.23
Huffman’s algorithm
x a b c d Combine
e
f(x) 0.32 0.25 0.20 0.18 0.05 d, e as “de”
x a b c de Combine
f(x) 0.32 0.25 0.20 0.23 c, de as “cde”
x a b cde
f(x) 0.32 0.25 0.43
Huffman’s algorithm
x a b c Combine
d e
f(x) 0.32 0.25 0.20 0.18 0.05 d, e as “de”
x a b c de Combine
f(x) 0.32 0.25 0.20 0.23 c, de as “cde”
x a b cde Combine
f(x) 0.32 0.25 0.43 a, b as “ab”
x ab cde
f(x) 0.57 0.43
Huffman’s algorithm
x a b c Combine
d e
f(x) 0.32 0.25 0.20 0.18 0.05 d, e as “de”
x a b c de Combine
f(x) 0.32 0.25 0.20 0.23 c, de as “cde”
x a b cde Combine
f(x) 0.32 0.25 0.43 a, b as “ab”
x ab cde Two letters,
f(x) 0.57 0.43 base case ab cde
Huffman’s algorithm
x a b c Combine
d e
f(x) 0.32 0.25 0.20 0.18 0.05 d, e as “de”
x a b c de Combine
f(x) 0.32 0.25 0.20 0.23 c, de as “cde”
x a b cde Split “ab”
f(x) 0.32 0.25 0.43 as a, b cde
x a b c de Split “cde”
f(x) 0.32 0.25 0.20 0.23 as c, de
a b c de
x a b cde Split “ab”
f(x) 0.32 0.25 0.43 as a, b
x ab cde Two letters,
f(x) 0.57 0.43 base case
Huffman’s algorithm
x a b c Split “de”
d e
f(x) 0.32 0.25 0.20 0.18 0.05 as d, e
x a b c de a b c
Split “cde”
f(x) 0.32 0.25 0.20 0.23 as c, de
d e
x a b cde Split “ab”
f(x) 0.32 0.25 0.43 as a, b
x ab cde Two letters,
f(x) 0.57 0.43 base case
Optimality
Complexity is O(k2)
Implementation, complexity
At each recursive step, extract letters with
minimum frequency and replace by composite
letter with combined frequency
Partition A as A1, A2