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
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
Youtube Channels
โ๏ธ Thatโs it. Youโre done!! โณ Update all your works in github. Happy Learning