The way you should go about learning algorithms ( IMO) is like below
Stage 1) Basic Data Structures
These are basic structures and used to store data. Not much operation can be done on these
Linked List
Array
Structures
Matrix ; N-D array
Circular Linked List
Double Linked List
String
Stage 2) Advanced Data Structures
I have name them advanced, since these uses basic data structures and on top of that one these are built. Also algorithm/ predefined operations are associated with them.
Queue
Stack
Circular Queue
Priority Queue
Tree
Binary Tree
Bianry Search Tree
Huffman Tree
Parent Array
Heap
Set
Adjacency List
Adjacency Matrix
Suffix Tree and LCS array
Stage 3) Algorithms
Boyer Moore Algorithm
KMP Algorithm
Karp Robin Algorithm
String Compression : Brute Force and Huffman Tree
Dijkstra , Bellman-Ford , Floyd-Marshall
Subset, Permutation,Combination Generation - Brute-Force and Backtracking
Sorting Algorithm
Tree Traversal - Pre-order, Post-order, In-order
Graph Traversal - DFS , BFS
Prim , Krushal
String reversal
Stage 4) Solving Methods
Back tracking
Recursion
Iteration
Greedy Approach
How machine stores data
Maths
Time Complexity and Space Complexity
Memorization
No comments:
Post a Comment