1. First Course in Algorithms Through Puzzles by Ryuhei Uehara
  2. Handbook of data structures and applications by Dinesh P. Mehta, Sartaj Sahni, 2018 ed.
  3. Learning Algorithms - A Programmer’s Guide to Writing Better Code by George T. Heineman
  4. Learning Algorithms Through Programming and Puzzle Solving by Alexander S. Kulikov and Pavel Pevzner
  5. Data Structures & Problem Solving Using Java by Mark Allen Weiss
  6. Data Structures and Algorithms in Java by Michael McMillan: This book focuses on implementing graph algorithms and data structures in Java, providing practical examples and exercises with code.
  7. Problem Solving in Data Structures & Algorithms Using JAVA by Hemant Jain
  8. The Algorithm Design Manual by Steven S. Skiena
  9. Think Data Structures - Algorithms and Information Retrieval in Java by Allen B. Downey
  10. Algorithms by Robert Sedgewick and Kevin Wayne (Princeton University)
  11. Data Structures and Algorithms - Learn from Scratch by Rahul Maurya
  12. Algorithms and Data Structures The Basic Toolbox by Kurt Mehlhorn and Peter Sanders
  13. A Common-Sense Guide to Data Structures and Algorithms - Level Up Your Core Programming Skills by Jay Wengrow
  14. Algorithms and Programming - Problems and Solutions by Alexander Shen <Refer to chapter 3 Tree traversal (backtracking) for N-Queens Problem>
  15. Algorithms by S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani
  16. Java Software Structures - Designing and Using Data Structures by John Lewis, Joseph Chase
  17. Algorithms in Action by Victor Savvich <Definitely go through Chapter 1 : Review, Chapter 7: Network Flow. Overall good overview>
  18. Grokking Algorithms by Aditya Y.Bhargava
  19. Data Structures and Algorithms- Annotated Reference with Examples by Granville Barnett
  20. Guide to Competitive Programming - Learning and Improving Algorithms Through Contests by Antti Laaksonen
  21. Dynamic Programming for Coding Interviews - A Bottom-up approach to problem solving by Meenakshi & Kamal Rawat
  22. Data Structures and Algorithms by Kartik Kapoor (Link)
  23. Data Structures & Algorithms in Python by John Canning, Alan Broder, Robert Lafore
  24. Data Structures and Algorithms Using Python by Rance D. Necaise Link
  25. Introduction to Algorithms by MIT Press

Graph Problems

  1. Algorithms for Graphs and Networks by Brenda Sanders and Domenico Toraldo: A comprehensive textbook on graph algorithms and their applications

Sorting

  1. The Art of Computer Programming, Volume 3: Sorting and Searching” by Donald Knuth: A comprehensive and rigorous treatment of sorting algorithms
  2. Interactive Sorting Visualizations”: https://visualgo.net/en/sorting - An interactive website that demonstrates different sorting algorithms.

Searching

  1. Introduction to Information Retrieval” by Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schütze: An in-depth look at search algorithms and information retrieval techniques
  2. Stanford CS 106L: Searching and Hashing”: https://web.stanford.edu/class/archive/cs/cs106b/cs106b.1206/lectures/hashing/ - Online lectures and code examples for various search algorithms

String Processing

  1. “Regular Expressions Cookbook” by Steven Levithan: A practical guide to using regular expressions for string manipulation.
  2. OpenNLP”: https://opennlp.apache.org/ - A Java library for natural language processing, including string processing tools.

Problems Practise

  1. https://projecteuler.net/about
  2. https://leetcode.com
  3. https://www.hackerrank.com