Algorithm and Data Structures List
Algorithm and Data Structures List
1. Number Theory
1.1 Prime Numbers
1.2 Divisors
1.3 GCD and LCM
1.4 Euler’s Totient Function
1.5 BigMod
1.6 Modular Inverse
1.7 Extended GCD
1.8 Probability
1.9 Expectation
1.10 Base Conversion
1.11 Bid Integer
1.12 Cycle Finding
1.13 Gaussian Elimination
2.14 Factorial’s Last “0”s
1.15 Number of Digits of a Factorial
1.16 Permutation
1.17 Combination
1.18 Derangement Number
1.19 Catalan Number
1.20 Starling Number of Second & then First Kind
1.21 Fibonacci Number
1.22 Inclusion Exclusion Principle
2. Sorting
2.1 Insertion Sort
2.2 Selection Sort
2.3 Bubble Sort
2.4 Merge Sort
2.5 Counting Sort
2.6 STL Sort Function
3. Searching
3.1 Binary Search
3.2 Ternary Search
3.3 Permutation Generate
3.4 Combination Generate
3.5 Eight Queen problem
3.6 Knapsack problem
4. Data Structure
4.1 Linked List
4.2 Stack
4.3 Queue
4.4 Graph
4.5 Tree
4.6 Binary Search Tree
4.7 Heap or Priority Queue
4.8 Disjoint Set Union
4.9 Square Root Segmentation
4.10 Query in Static Data
4.11 Segment Tree
4.11.1 Creating Segment Tree
4.11.2 Updating Segment Tree
4.11.3 Query in Segment Tree
4.11.4 Lazy without Propagation
4.11.5 Lazy with Propagation
4.12 Binary Indexed Tree
5. Greedy Technique
5.1 Fractional Knapsack
5.2 Minimum Spanning Tree
5.2.1 Prim’s Algorithm
5.2.2 Kruskal’s Algorithm
5.3 Washing Machine and Dryer
5.4 Huffman Coding
6. Dynamic Programming
6.1 Again Fibonacci (See section 7.1 of M Hasan’s book)
6.2 Coin Change (Must see section 7.2.1-7.2.5 of M Hasan’s book)
6.3 Travelling Salesman Problem
6.4 Longest Increasing Subsequence
6.5 Longest Common Subsequence
6.6 Matrix Chain Multiplication
6.7 Optimal Binary Search Tree
7. Graph
7.1 Breadth First Search (BFS)
7.2 Depth First Search (DFS)
7.3 BFS & DFS OJ (Must see section 8.3.1-8.3.6 of M Hasan’s book)
7.4 Single Source Shortest Path
7.4.1 Dijkstra’s Algorithm
7.4.2 Bellman Ford Algorithm
7.5 All Pair Shortest Path or Floyd Warshall Algorithm
7.6 Articulation Vertex/Edge
7.7 Euler Path and Euler Cycle
7.8 Topological Sort
7.9 Strongly Connected Component (SCC)
7.10 2-Satisfiability (2-sat)
7.11 Biconnected Component
7.12 Flow
7.12.1 Maximum Flow
7.12.2 Minimum Flow
7.12.3 Minimum Cost Maximum Flow
7.12.4 Maximum Bipartite Matching
7.12.5 Vertex Cover and Independent Set
7.12.6 Weighted Maximum Bipartite Matching
8. Ad-hoc Technique
8.1 Cumulative Sum Technique
8.2 Maximum Sum Technique
8.2.1 One Dimensional Maximum Sum Problem
8.2.2 Two Dimensional Maximum Sum Problem
8.3 Josephus Problem
8.4 Highest Element in a Particular Bound (নিনদিষ্ট সীমায় সর্াচ্চ
ি উপাদাি)
10. String
10.1 Hashing
10.2 Knuth-Morris-Pratt Algorithm (KMP)
10.3 Z Algorithm
10.4 Trie
10.5 Aho-corasick Algorithm
10.6 Suffix Array