A list of projects made by me. Several other projects have been initiated and still under pipeline.
Some of the most interesting and successful projects were made in an attempt to have "fun" such as - A* Search Algorithm, Minesweeper, Tic-Tac-Toe etc.
Many of these projects are aimed to "play" with unconventional data structures (like- Cartesian Tree, Sparse Set) and some of them are "serious" algorithms designed just to get a slight performance edge over the existing popular algorithms (like- Tarjan Offline Least Common Ancestor Algorithm whose analysis involves inverse Ackermann function).
These projects won me the title of Geek of the Month, for June 2016 given by GeeksforGeeks
These projects were successfully implemented continuously from [February 2016 - Current] and published on GeeksforGeeks
These projects were implemented, tested and compiled together by Rachit Belwariar.
One can also find all my Test Case Generator Programs and Sample Test Cases here
1. Requirements - Any C/C++ Compiler would work.
2. Design - The projects are well commented and each project is accompanied with its respective Project Manual for convenience of the readers.
Also read the Description.md file associated with all the projects to get the link to the published projects.
3. Implementation - All projects are implemented using C/C++. I have planned to implement them in other languages like-Python in near future.
4. Testing/Debugging - Several tests have been run on all the projects by generating random test cases.
The test-case generators are included with their respective projects.
One can also find all my Test Case Generator Programs and Sample Test Cases here
Note- Minesweeper and Tic-Tac-Toe have in-built test case generators. Hence no test case generators have been included with them.
5. Maintenance -The projects are maintained from time to time.
Majority of my projects have been published on GeeksforGeeks and is always at check by the heavy traffic of its readers.
Any suggestions to improve the projects are welcome on gbelwariar@gmail.com or can directly send a PR.
- A* Search Algorithm
- Minesweeper
- Tic-Tac-Toe
- Tarjan Offline Least Common Ancestor Algorithm
- Sparse Set Data Structure
- Cartesian Tree Data Structure and Cartesian Tree Sorting
- Introsort-Inside of C++'s sort() Function
- Calendar
- Longest Common Extension(LCE) - Segment Tree Method
- Mother Vertex of a Graph
- 2D-Binary Indexed Tree Fenwick Tree
- A-Star Search Algorithm
- Almost Prime Numbers
- Base64 Decoding (Strings)
- Base64 Encoding (Strings)
- Cartesian Tree Sorting
- Cartesian Tree
- Change Gender Of A String
- Combinations with Repetitions
- Combinatorial Game Theory - Game of Nim
- Combinatorial Game Theory - Nimbers and Mex
- Combinatorial Game Theory - Sprague-Grundy Theorem
- My Favourite Dynamic Programming Problem
- Four File-Handling Hacks Which Every Programmer Must Know
- Gnome Sort - A Stupid One
- Calendar
- Introsort-Inside of C++'s sort() Function
- Iterative Deepening Depth-First Search(IDDFS)/Iterative Depth-First Search(IDFS)
- K-Core of a Graph
- Longest Common Increasing Subsequence(LCIS)
- Longest Common Extension(LCE) - Naive Method
- Longest Common Extension(LCE) - Reduction to RMQ
- Longest Common Extension(LCE) - Segment Tree
- Longest Common Prefix(LCP) - Binary Search
- Longest Common Prefix(LCP) - Character-by-Character Matching
- Longest Common Prefix(LCP) - Divide and Conquer
- Longest Common Prefix(LCP) - Using Trie
- Longest Common Prefix(LCP) - Word-by-Word Matching
- Maximum Rectangular Sub-Matrix having all 1's
- Minesweeper
- Mother Vertex of a Graph
- Number Of Factors Of a Factorial
- Number of Subarrays With Even Sum
- Odd-Even Sort
- One Time Password
- Pangram Checker
- Sleep Sort - The King of Laziness Sorting While Sleeping
- Sparse Set
- String-Hashing - Substring Palindrome Queries
- Tarjan's Offline Least Common Ancestor(LCA) Algorithm
- Tic-Tac-Toe
- Number of Ways to Traverse N-ary Tree