CS 310 – Advanced Data Structures and Algorithms
Greedy July 17, 2017
Tong Wang UMass Boston CS 310 July 17, 2017 1 / 35
CS 310 Advanced Data Structures and Algorithms Greedy July 17, - - PowerPoint PPT Presentation
CS 310 Advanced Data Structures and Algorithms Greedy July 17, 2017 Tong Wang UMass Boston CS 310 July 17, 2017 1 / 35 Greedy Algorithm Like dynamic programming, used to solve optimization problems. Problems exhibit optimal substructure
Tong Wang UMass Boston CS 310 July 17, 2017 1 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 2 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 3 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 4 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 5 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 6 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 6 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 7 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 8 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 9 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 10 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 11 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 12 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 13 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 14 / 35
1
2
3
4
Tong Wang UMass Boston CS 310 July 17, 2017 15 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 16 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 17 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 18 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 19 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 20 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 21 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 22 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 23 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 24 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 25 / 35
2 3 4 5 6 7 8 9 space newline 1
Tong Wang UMass Boston CS 310 July 17, 2017 26 / 35
1 Sort the character by frequencies. 2 At each stage take the two least frequent characters and merge them
3 Replace the original two characters with the merged super-character.
4 Repeat until all the characters are merged into one big
5 Build the coding tree such that for every merging operation involving
Tong Wang UMass Boston CS 310 July 17, 2017 27 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 28 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 29 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 30 / 35
2 (6) 3 (5) 4 (4) 5 (3) 6 (3) 7 (3) 8 (2) 9 (2) nl (20) sp (30) 0 (10) 1 (7)
Tong Wang UMass Boston CS 310 July 17, 2017 31 / 35
1 There are no parent nodes with a single child. Every node is either a
2 The two least frequent characters will always be on a longest path
∗ This last property is what makes the greedy choice safe in this case
Tong Wang UMass Boston CS 310 July 17, 2017 32 / 35
1 The characters get processed by frequency, so given two characters x
2 The property above guarantees that the tree is optimal and no strictly
Tong Wang UMass Boston CS 310 July 17, 2017 33 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 34 / 35
Tong Wang UMass Boston CS 310 July 17, 2017 35 / 35