An introduction to the analysis of algorithms - Sedgewick, Robert; Flajolet, Philippe (Addison-Wesley, 1996)