1.Cast the optimization problem as one in which we make a choice and are left with one subproblem to solve.
2.Prove that there is always an optimal solution that makes the greedy choice, so that the greedy choice is always safe.
3.Show that greedy choice and optimal solution to subproblem ——> optimal solution to the problem.
4.Make the greedy choice and solve top-down.
5.May have to preprocess input to put it into greedy order.
And to prove the greedy algorihtm, there are two steps:
1.to prove the greedy choice property
2.to pove the optimal substructure (make contradiction)
The Huffman and its running time