Skip to the content.

Project Algorist

What is Project Algorist 2022?

For the next couple of months in this year, I will work on (and probably teach?!) Data Structures and Algorithms in detail. I will implement all the data structures and algorithms (in both C++ and Java) and save them in repositories. I will also solve many problems related to each topic.

How many days?

Around 4 months of self-study, practice and journaling

What are the data structures and algorithms I will work on?

  1. Merge Sort
  2. Binary Heap and Heap Sort
  3. Quick Sort and Order Statistics
  4. Lower Bounds for Sorting, Radix Sort
  5. Binary Search and Ternary Search
  6. Stacks, Queues, Amortized Cost
  7. Linked Lists, Pointer Machine
  8. Disjoint Sets Union
  9. Binomial Heaps and Fibonacci Heaps
  10. Dynamic Programming (Classical DP Problems)
  11. Knapsack Problem
  12. DP on Subsets, DP on Profiles, Bitmasking DP
  13. Hashing, Hashtables
  14. Perfect hashing, cuckoo hashing, bloom filter
  15. Segment Trees
  16. Segment Trees, Lazy Propagation
  17. Binary Indexed Tree or Fenwick Tree
  18. Sparse Table
  19. 2D Segment Tree Problems
  20. Binary Search Tree, BST Sort
  21. AVL Tree
  22. Red Black Tree
  23. Treaps, Implicit Keys
  24. Splay Tree
  25. Scapegoat Tree, List Order Maintenance
  26. Binary Lifting, K’th Ancestor
  27. LCA, Farach-Colton and Bender Algorithm
  28. Heavy-Light Decomposition
  29. Centroid Decomposition
  30. Graphs, Depth First Search (DFS)
  31. Topological Sorting
  32. Strongly Connected Components (SCC)
  33. 2-SAT Problem
  34. Bridges, Articulation Points, Euler Cycle
  35. Dominator Tree
  36. Minimum Spanning Tree
  37. Breadth First Search, 0-1 BFS
  38. Dijkstra’s Algorithm
  39. A* Algorithm
  40. Bellman Ford Algorithm
  41. Floyd-Warshall Algorithm
  42. Game Theory
    1. Graph Games
    2. Sprague-Grundy Theorem
    3. Nim Game
  43. Strings, Hashing, KMP and Z Algorithm
  44. Finite State Automata
  45. Trie
  46. Aho Corasick Algorithm
  47. Suffix Array
  48. Suffix Tree, Ukkonen’s Algorithm
  49. Y-Fast Trie
  50. Fusion Tree
  51. Maximum Matchings in Bipartite Graphs
  52. Maximum Matchings in Non-Bipartite Graphs
  53. Flows, Cuts, Ford-Fulkerson Algorithm, Edmonds-Karp Algorithm
  54. Dinic’s Algorithm
  55. Hopcroft-Karp Algorithm, Push-Relabel
  56. Assignment Problem
  57. Hungarian Algorithm
  58. Minimum Cost Flows
  59. Global Minimum Cuts
  60. Linear Programming
  61. Number Theory and Number Theory Algorithms
    1. Binary Exponentiation
    2. Factoring Exponentiation
    3. Euclidean Algorithm for Computing GCD
    4. Extended Euclidean Algorithm
    5. Linear Diophantine Equation
    6. Fibonacci Numbers
    7. Sieve of Eratosthenes
    8. Linear Sieve
    9. Primality Tests
    10. Integer Factorization
    11. Euler’s Totient Function
    12. Number of Divisors
    13. Sum of Divisors
    14. Divisibility
    15. Modular Inverse
    16. Linear Congruence Equation
    17. Chinese Remainder Theorem
    18. Factorial modulo P
    19. Enumerating Submasks of a bitmask
  62. Fast Fourier Transform
  63. Linear Algebra