Upvoted for recommendation of "Dasgupta, Papadimitriou, and Vazirani; Algorithms". Unlike TAOCP and CLRS it's actually readable in realistic amount of time. This book is also very good at explaining theoretical computer science. In particular - NP completeness. Official copy is available at home page of Umesh Vazirani at berkeley.edu: 0: Prologue - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap0.... 1: Al…
And it perfectly accompanies Sedgwick's free algorithms course on Coursera.