Studying algorithms for computer scienctists is one of the most important subjects because of its implication on the real-world projects. The study of algortihms may be seen in two different aspects: 1- In an abstract theoritical view that will be based on mathmatical proofs. 2- In a more practical view that will be based on problem solving on the studied algorithms and techniques.
This book is balancing between both views. It gives you the needed theory to understand the basics as well as it enables writing code for the studied algorithms.
- Introduction to Algorithms, 3rd Edition: https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844
- Algorithms Unplugged: https://www.amazon.com/Algorithms-Unplugged-Berthold-V%C3%B6cking-ebook/dp/B00DWKPM3U
- The Algorithm Design Manual: https://www.amazon.com/Algorithm-Design-Manual-Computer-Science/dp/3030542556
- MIT 6.006 Introduction to Algorithms, Spring 2020: https://www.youtube.com/playlist?list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY
- MIT 6.006 Introduction to Algorithms, Fall 2011: https://www.youtube.com/playlist?list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb
- Algorithms (Ghassan Shobaki Computer Science Lectures): https://www.youtube.com/playlist?list=PL6KMWPQP_DM8t5pQmuLlarpmVc47DVXWd