Top algorithms – Sorting: sort Sort elements in range (function template ) stable_sort Sort elements preserving order of equivalents (function template ) partial_sort Partially sort elements in range (function template ) partial_sort_copy Copy and partially sort range (function template ) is_sorted Check whether range is sorted (function template ) is_sorted_until Find first unsorted element in range (function template ) nth_element Sort element in range (function template )
- Insertion sort, Selection sort,
- Merge Sort, Quicksort
- Binary Search
- Breadth First Search (BFS)
- Depth First Search (DFS)
- Lee algorithm | Shortest path in a Maze
- Flood fill Algorithm
- Floyd’s Cycle Detection Algorithm
- Kadane’s algorithm
- Longest Increasing Subsequence
- Inorder, Preorder, Postorder Tree Traversals
- Heap Sort
- Topological Sorting in a DAG
- Disjoint-Set Data Structure (Union-Find Algorithm)
- Kruskal’s Algorithm for finding Minimum Spanning Tree
- Single-Source Shortest Paths — Dijkstra’s Algorithm
- All-Pairs Shortest Paths — Floyd Warshall Algorithm
- Along with above algorithms, every computer science student is expected to implement below data structures –
- Linked List Implementation | Part 1
- Linked List Implementation | Part 2
- Insertion in BST
- Search given key in BST
- Deletion from BST
- Stack, Queue
- Min Heap and Max Heap
- Graph Implementation using STL
- Graph Implementation in C++ without using STL
- Trie Implementation | Insert, Search and Delete
- Memory efficient Trie Implementation using Map | Insert, Search and Delete
- One is also expected to be familiar with other programming paradigms like Backtracking, Dynamic Programming, Divide & Conquer, Greedy Algorithms and concepts like Hashing and Recursion.