Design and Analysis of Algorithms - Smith, Jeffrey D. (1989)