An Introduction to the Analysis of Algorithms