{"id":23124052,"url":"https://github.com/chaitanyarahalkar/algorithms","last_synced_at":"2025-05-07T05:04:33.753Z","repository":{"id":133778445,"uuid":"189150442","full_name":"chaitanyarahalkar/Algorithms","owner":"chaitanyarahalkar","description":"Must-know algorithms written in C++","archived":false,"fork":false,"pushed_at":"2019-06-27T16:21:59.000Z","size":45,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-07T05:04:28.962Z","etag":null,"topics":["algorithm-challenges","algorithms","algorithms-and-data-structures","algorithms-implemented","c-plus-plus","competitive-programming","competitive-programming-contests","cpp"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chaitanyarahalkar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-29T04:27:03.000Z","updated_at":"2023-12-09T16:47:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"64820f60-f79d-4a5e-aaee-1fd113681c65","html_url":"https://github.com/chaitanyarahalkar/Algorithms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaitanyarahalkar%2FAlgorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaitanyarahalkar%2FAlgorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaitanyarahalkar%2FAlgorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaitanyarahalkar%2FAlgorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chaitanyarahalkar","download_url":"https://codeload.github.com/chaitanyarahalkar/Algorithms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252817010,"owners_count":21808705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm-challenges","algorithms","algorithms-and-data-structures","algorithms-implemented","c-plus-plus","competitive-programming","competitive-programming-contests","cpp"],"created_at":"2024-12-17T07:37:27.321Z","updated_at":"2025-05-07T05:04:33.746Z","avatar_url":"https://github.com/chaitanyarahalkar.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eWelcome to Algorithms  👋\u003c/h1\u003e\n\u003cp\u003e\n  \u003cimg src=\"https://img.shields.io/badge/version-1.0.0-blue.svg?cacheSeconds=2592000\" /\u003e\n  \u003ca href=\"https://github.com/chaitanyarahalkar/Algorithms/blob/master/README.md\"\u003e\n    \u003cimg alt=\"Documentation\" src=\"https://img.shields.io/badge/documentation-yes-brightgreen.svg\" target=\"_blank\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/kefranabg/readme-md-generator/graphs/commit-activity\"\u003e\n    \u003cimg alt=\"Maintenance\" src=\"https://img.shields.io/badge/Maintained%3F-yes-green.svg\" target=\"_blank\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/chaitanyarahalkar/Algorithms/blob/master/LICENSE\"\u003e\n    \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" target=\"_blank\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/chairahalkar\"\u003e\n    \u003cimg alt=\"Twitter: chairahalkar\" src=\"https://img.shields.io/twitter/follow/chairahalkar.svg?style=social\" target=\"_blank\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Must know algorithms implemented in C++. These algorithms span over a wide range of data structures and complex concepts useful for competitive programming.\n\n### 🏠 [Homepage](https://github.com/chaitanyarahalkar/Algorithms)\n\n## Checklist Of Algorithms \n\n- [ ] (a) Number Theory\n  1. Prime Number Generation  (Sieve, Segmented Sieve) \n  \n  2. Euler Totient Theorem\n  3. Fermat’s Theorem\n  4. HCF \u0026 LCM (Euclid) \n  5. Linear Diophantine Equations (Extended Euclid)\n  6. Modulus Arithmetic (addition,multiplication,subtraction,modular Inverse)\n  7. Cycle Finding (Floyd Algo and Brent Algo)\n  8. Integer Factorization (Trial Division , Pollard Rho method)\n  9. Lucas Theorem  (Simple \u0026 Advance)\n  10. Chinese Remainder Theorem\n  11. Wilson Theorem\n  12. Miller - Rabin Primality Testing\n  13. Perfect Numbers\n  14. Goldbach Conjecture\n  \n- [ ] (b) Probability\n  1. Basic Probability and Conditional Probability\n  \n  2. Random Variables\n  \n  3. Probability Generating Functions\n  \n  4. Expectation\n  \n  5. Probability Distribution [Binomial, Poisson, Normal,Bernoulli]\n\n- [ ] (c) Counting\n  1. Pigeonhole principle\n  \n  2. Inclusion Exclusion\n  \n  3. Special Numbers  [Stirling,Fibonacci,Catalan, Eulerian, Harmonic, Bernoulli]\n  \n  4. Polya Counting\n  \n  5. Burnside lemma\n\n- [ ] (d) Permutation Cycles\n\n- [ ] (e) Linear Algebra\n  1. Addition And Subtraction Of Matrices\n  \n  2. Multiplication ( Strassen's algorithm ), Logarithmic exponentiation\n  \n  3. Matrix Transformations [ Transpose, Rotation Of Matrix, Representing Linear Transformations Using Matrix ]\n  \n  4. Determinant , Rank and Inverse Of Matrix [ Gaussian Elimination , Gauss Jordan Elimination]\n  \n  5. Solving System Of Linear Equations\n  \n  6. Matrix Exponentiation To Solve Recurrences\n  \n  7. Eigenvalues And Eigen vector\n  \n  8. Roots of a polynomial [ Prime factorization of a polynomial, Integer roots of a polynomial]\n  \n  9. Lagrange Interpolation\n\n- [ ] (e) Game Theory\n  1. Basic Concepts \u0026 Nim Game [Grundy Theorem , Grundy Number]\n  \n  2. Hackenbush\n\n- [ ] (f) Group Theory\n  1. Burnside Lemma\n  \n  2. Polya's Theorem\n\n  ##### Graphs:\n\n- [ ] (a) Graph Representation\n  1. Adjacency Matrix \n  \n  2. Adjacency List\n  \n  3. Incidence Matrix\n  \n  4. Edge List\n\n- [ ] (b) Graph Types\n  1. Directed\n  \n  2. Undirected\n  \n  3. Weighted\n  \n  4. Unweighted\n  \n  5. Planar\n  \n  6. Hamilton\n  \n  7. Euler\n  \n  8. Special Graphs\n\n- [ ] (c) DFS \u0026 It’s Application\n  1. Cycle Detection\n  \n  2. Articulation Points\n  \n  3. Bridges\n  \n  4. Strongly Connected Component\n  \n  5. Connected Component\n  \n  6. Path Finding\n  \n  7. Solving Maze\n  \n  8. Biconnectivity in Graph\n  \n  9. Topological Sorting\n  \n  10. Bipartite Checking\n  \n  11. Planarity Testing\n  \n  12. Flood-fill algorithm\n\n- [ ] (d) BFS \u0026 It’s Application\n  1. Shortest Path (No. Of Edges)\n  \n  2. Bipartite Checking\n  \n  3. Connected Components\n\n- [ ] (d) Minimum Spanning Tree\n  1. Prim’s Algorithm\n  \n  2. Kruskal Algorithm\n\n- [ ] (d) Single Source Shortest-Path \n  1. Dijkstra\n  \n  2. Bellman Ford\n\n- [ ] (e) All pair Shortest Path\n  \n1. Floyd Warshall’s Algorithm\n  \n- [ ] (f) Euler Tour\n\n- [ ] (g) Flow\n  1. Ford-Fulkerson [PFS,DFS,BFS]\n  \n  2. Dinic's Algorithm\n  \n  3. Min Cost - Max Flow  [Successive Shortest Path Algo,Cycle Cancelling Algorithm]\n  \n  4. Max Weighted BPM  [Kuhn Munkres algorithm/Hungarian Method]\n  \n  5. Stoer Wagner Min-Cut Algo\n  \n  6. Hop-Kraft BPM\n  \n  7. Edmond Blossom Shrinking Algorithm\n\n- [ ] (h) Other Important Topics On Graphs\n  1. 2-SAT,\n  \n  2. LCA \n  \n  3. Maximum Cardinality Matching\n  \n  4. Application Flow\n  \n  5. Min Path Cover Over Dag\n  \n  6. Independent Edge Disjoint Path\n  \n  7. Minimum Vertex Cover\n  \n  8. Maximum Independent Set\n\n- [ ] Data Structures\n  1. Arrays\n  \n  2. Linked List\n  \n  3. Trees (Binary Tree And Binary Search Tree)\n  \n  4. Stacks\n  \n  5. Queues\n  \n  6. Heap\n  \n  7. Hash Tables\n  \n  8. Disjoint-Set Data Structures\n  \n  9. Trie\n  \n  10. Segment Tree\n  \n  11. Binary Index Tree\n  \n  12. Treap\n\n- [ ] Searching And Sorting\n  1. Linear Search\n  \n  2. Binary Search\n  \n  3. Ternary Search\n  \n  4. Selection Sort\n  \n  5. Bubble Sort\n  \n  6. Insertion Sort\n  \n  7. Merge Sort\n  \n  8. Quick Sort\n  \n  9. Quick Select\n  \n  10. Heap Sort\n  \n  11. Radix Sort\n  \n  12. Counting Sort\n\n- [ ] Greedy\n  1. Classical Problems of Greedy \u0026 Concept\n  example : Fractional Knapsack\n\n- [ ] Dynamic Programming Classical Problems\n  1. Edit Distance\n  \n  2. Egg Dropping Puzzle\n  \n  3. Integer Knapsack\n  \n  4. Largest Independent Set\n  \n  5. Longest Biotonic Subsequence\n  \n  6. Longest Common Subsequence\n  \n  7. Longest Common Substring\n  \n  8. Longest Increasing Subsequence\n  \n  9. Longest Palindromic Subsequence\n  \n  10. Longest Palindromic Substring\n  \n  11. Longest Substring Without Repeating Character\n  \n  12. Matrix Chain Multiplication\n  \n  13. Max Size Square Submatrix With One\n  \n  14. Maximum Length Chain Pairs\n  \n  15. Maximum Sum Increasing Subsequence\n  \n  16. Optimal Binary Search Tree\n  \n  17. Palindrome Partition Problem\n  \n  18. Set Partition Problem\n  \n  19. Subset Sum\n  \n  20. Word Wrap Problem\n\n- [ ] Dynamic Programming  Advanced Techniques\n  1. DP + Tree\n  \n  2. DP + Bit Masking\n  \n  3. DP + Binary Search\n  \n  4. DP + Graph\n  \n  5. DP + Matrix Exponentiation\n  \n  6. DP + Probability Space\n  \n  7. DP + Crack Recurrence\n\n- [ ] Divide \u0026 Conquer\n  1. Classical Problems \u0026 Concepts\n  \n  2. Merge Sort\n  \n  3. Closest Pair Points\n\n- [ ] Other Algorithm Design Techniques\n  1. BackTracking\n  \n  2. Man In Middle\n  \n  3. Newton-Raphson to reach the fixed point\n  \n  4. Brute Force\n  \n  5. Constructive Algo\n  \n  6. Sliding Window\n  \n  7. Pancake Sorting\n\n\n## Prerequisites\n\n- GNU GCC \n- Make\n\n## Install\n\n```sh\nmake\n```\n\n## Usage\n\n```sh\n./binary-name to run the program\n```\n\n## Author\n\n👤 **Chaitanya Rahalkar**\n\n* Twitter: [@chairahalkar](https://twitter.com/chairahalkar)\n* Github: [@chaitanyarahalkar](https://github.com/chaitanyarahalkar)\n\n## 🤝 Contributing\n\nContributions, issues and feature requests are welcome!\u003cbr /\u003eFeel free to check [issues page](https://github.com/chaitanyarahalkar/Algorithms/issues).\n\n## Show your support\n\nGive a ⭐️ if this project helped you!\n\n## 📝 License\n\nCopyright © 2019 [Chaitanya Rahalkar](https://github.com/chaitanyarahalkar).\u003cbr /\u003e\nThis project is [MIT](https://github.com/chaitanyarahalkar/Algorithms/blob/master/LICENSE) licensed.\n\n***\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaitanyarahalkar%2Falgorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchaitanyarahalkar%2Falgorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaitanyarahalkar%2Falgorithms/lists"}