Data Structures and Algorithm
A computer program is a collection of instructions to perform a specific task. For this, a computer program may need to store data, retrieve data, and perform computations on the data.
A data structure is a named location that can be used to store and organize data. And, an algorithm is a collection of steps to solve a particular problem. Learning data structures and algorithms allow us to write efficient and optimized computer programs.
PREREQUISITES 🧳
Proficiency in any programming language is a must as it will ease most of your problems when it comes to implementation. Be it C++, Java, Python, or any language of your choice.
TOPICS TO LEARN 📖
Asymptotic Analysis
Arrays and Lists
2D Arrays
Functions
Strings
Linked List
Stack
Queue
Hash Table and Hash Set
Heap
Divide and Conquer Algorithm
Graph
- BFS
- DFS
- Prim’s Algorithm
- Dijkstra’s Algorithm
Binary Tree
Binary Search Tree
Trie
Searching
Backtracking
- Rat in a maze
- N Queen Problem
- Sudoku Problem
Greedy Algorithm
- Fractional Knapsack
- Huffman coding
Sorting Techniques
- Heap sort
- Merge sort
- Quick sort
- Bubble sort *Complexity of an Algorithm
*Best case complexity-Omega notation *Average case complexity-Theta notation *Worst case complexity-Big O notation
Online Courses 💻
Tutorials 💡
Blogs 📝
Books 📚
- Introduction to Algorithms by Thomas H Cormen
- Algorithms by Robert Sedgewick & Kevin Wayne
- The Algorithm Design Manual by Steve S. Skiena
- Algorithm Design by Kleinberg & Tardos
- Data Structures and Algorithms. Aho, Ullman & Hopcroft
- Classic Data Structure by Debasis Samanta
GitHub Repos
Youtube Channels
✌️ That’s it. You’re done!! ⛳ Update all your works in github. Happy Learning