I am trying to learn more about programming algorithms (the types used in programming competitions) and want to buy a well-rounded, comprehensive book to this end. 'Competitive Programming 2' by Steven Halim caught my eye, and the contents (shown below) looked pretty thorough. Does anyone know a better, easy-to-understand book which will explain concepts well?
Contents:
Introduction 1
2 Data Structures and Libraries 14
3 Problem Solving Paradigms 25
4 Graph 57
5 Mathematics 92
6 String Processing 109
7 (Computational) Geometry 120
A Code Library 133