Algorithms illuminated. - Roughgarden, Tim, 1975- (Soundlikeyourself Publishing, 2017)