Reference: Bradford Tuckfield, Dive Into Algorithms