Skip to content

Latest commit

 

History

History
85 lines (75 loc) · 1.63 KB

README.md

File metadata and controls

85 lines (75 loc) · 1.63 KB

algos-in-py

Sorting

  1. Bubble Sort
  2. Selection Sort
  3. Insertion Sort
  4. Quick Sort
  5. Merge Sort
  6. Heap Sort
  7. Counting Sort
  8. Radix Sort
  9. Bucket Sort

Searching

  1. Linear Search
  2. Binary Search
  3. Ternary Search
  4. Jump Search
  5. Interpolation Search
  6. Exponential Search

Data Structure

  1. Array
  2. Stack
  3. Queue
  4. Linked List

String

  1. Naive Pattern Searching
  2. KMP
  3. Rabin-Karp
  4. Finite Automata
  5. Suffix Array
  6. Z Algorithm

Mathematics

Number Theory

  1. Fibonacci Series
  2. Palindrome Number
  3. Prime Number
  4. Finding Divisors
  5. Base Conversion
  6. Greatest Common Divisor (GCD) (Euclidean method)
  7. Lowest Common Multiple (LCM)
  8. Number of Digits of a Factorial
  9. Phi Function (Euler Totient)
  10. Extended Euclidean
  11. Prime Factorization
  12. Modular Exponentiation

Tree

  1. Binary Tree
  2. Binary Search Tree
  3. Red-black Tree
  4. AVL Tree
  5. Segment Tree
  6. Binary Index Tree
  7. Trie

Graph

  1. Breadth First Search (BFS)
  2. Depth First Search (DFS)
  3. Shortest Path from source to all vertices Dijkstra
  4. Shortest Path from every vertex to every other vertex Floyd Warshall
  5. Minimum Spanning tree Prim
  6. Minimum Spanning tree Kruskal
  7. Topological Sort
  8. Johnson’s algorithm
  9. Articulation Points (or Cut Vertices) in a Graph
  10. Strongly Connected Components (SCC)
  11. Kosaraju’s Algorithm
  12. Bellman-Ford

Dynamic Programming

  1. Recursive vs Iteration
  2. Longest Increasing/Decreasing Subsequence (LIS/LDS)
  3. Longest Common Subsequence (LCS)
  4. Edit Distance
  5. Traveling Salesman
  6. Coin Change

Greedy Techniques

  1. Maximum Sum in Subarray (1D)
  2. Maximum Sum in Rectangle (2D)