Top Algorithms:
Every computer science student is expected to know the following algorithms:
Insertion Sort, Selection Sort, Merge Sort, Quicksort, Counting Sort, Heap Sort
Kruskal’s Algorithm
Floyd Warshall Algorithm
Dijkstra’s Algorithm
Bellman Ford Algorithm
Kadane’s Algorithm
Lee Algorithm
Flood Fill Algorithm
Floyd’s Cycle Detection Algorithm
Topological Sorting in a DAG
Union Find Algorithm
Top Data Structures:
Along with the above algorithms, every computer science student is expected to
implement the following data structures:
- Linked List — C, C++, Java, Python
- Linked List — Insertion at Tail
- BST — Insertion, Searching, Deletion
- Stack implementation using an array — C, C++, C++ (Using Templates), Java, Python
- Stack Implementation using a Linked List
Queue implementation using an array — C, C++, C++ (Using Templates), Java, Python
Queue Implementation using a Linked List
Min Heap and Max Heap — C++, Java
Graph — C, C++, C++ STL, Java Collections, Python
Trie — C, C++, C++ (Memory Efficient), Java, Python
Top Concepts: Finally, one is also expected to be familiar with other programming paradigms like Backtracking, Dynamic Programming, Divide & Conquer and Greedy Algorithms, and concepts like Hashing and Recursion.