NOTE: These are resources compiled from different places, and placed which looks good to me. I will keep updating this on any other important resources.
Practice Sites
- Codeforces
- Topcoder
- Codechef : Solving AC
- GeeksforGeeks
- Google Code Jam
- Leetcode (for practice of problems)
Books
- Introduction to Algorithms by CLRS [ bible]
- Algorithm Design Manual by Skiena
- Robert Sedgewick’s Algorithms [Multiple Parts in C++/Java]
- Data Structures and Algorithm Analysis by Mark Allen Weiss
- Algorithms in a Nutshell (O’Reilly)
Interview Books
- Cracking the Coding Interview by Gayle Laakmann McDowell
- Programming Interview Exposed
- Elements of Programming Interview
- Coding Interview Questions by Narasimha Karumanchi
- Programming Pearls
Online Courses:
- Khan Academy : Algorithms by Prof.Thomas Cormen and Devin Balkcom.
- Coursera : Algorithms 1 ( Page on coursera.org) – by Prof.Robert Sedgewick & Prof.Kevin Wayne from Princeton university.
- Coursera : Algorithms 2 ( Page on coursera.org) – by Prof.Robert Sedgewick & Prof.Kevin Wayne from Princeton university.
- Coursera : Algorithms: Design & Analysis part 1 ( Page on coursera.org) – by Prof.Tim Roughgarden from Stanford university
- Coursera : Algorithms: Design & Analysis part 2 ( Page on coursera.org) -by Prof.Tim Roughgarden from Stanford university
Other collected Resources:
- Questions in Stackoverflow
- Topcoder tutorials- Data Science Tutorials
- Hackerearth Notes
- Very good for starters- Page on iarcs.org.in
- CS 97SI: Introduction to Competitive Programming Contests
- List of some reknowned algorithms- Data Structures and Algorithms
- Begin with DP- Introduction to Dynamic Programming
- BigO CheatSheet- Big-O Algorithm Complexity Cheat Sheet
- A Very good blog entry on DS- Algorithm Gym :: Data structures – Codeforces
- Kind of a Bible- Basic Algorithms & Data-Structures
- Another Course to refer algo: A Competitive Programming Course
Good to know:
- Arrays, Linked Lists, Stacks, Queues
- Sorting:
- Searching: Binary Search, Hashing
- BFS search
- Tries, Suffix Trees [1][]
- DP Programming, Greedy Technique
Tips:
- Learn Programming with more practice
- Try solving the problems again that couldn’t be solved during programming contest.