A collection of essential algorithms implemented from scratch for learning, practice, and performance benchmarking.
This repository aims to serve as a personal reference and interview prep library, covering topics from sorting and searching to advanced data structures.
- π Clean, well-documented implementations of common algorithms
 - βοΈ Modular code organized by topic (Sorting, Searching, Recursion, etc.)
 - π§© Suitable for interview prep, college assignments, or competitive programming
 - π§ Implementations emphasize clarity, time complexity analysis, and edge cases
 
| Category | Algorithms Included | 
|---|---|
| Sorting | Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort | 
| Searching | Linear Search, Binary Search | 
| Arrays | Reverse, Rotate, Max/Min, Two Sum | 
| Recursion | Factorial, Fibonacci, Power, Permutations | 
| Strings | Palindrome Check, Anagram, Subsequence | 
| Data Structures | Stack, Queue, LinkedList, Binary Tree, BST | 
// Example: Using BubbleSort.java
int[] arr = {5, 3, 8, 4, 2};
BubbleSort.sort(arr);
System.out.println(Arrays.toString(arr)); // Output: [2, 3, 4, 5, 8]
(Adjust for your programming language β Java, Python, C++, etc.)- Language: Java (or specify your main language)
 - IDE: VS Code / IntelliJ / Eclipse
 - Version Control: Git & GitHub
 
- Fork this repo
 - Create a new branch
 - Add your algorithm implementation
 - Open a Pull Request All contributions are welcome β from beginner-friendly sorting algorithms to advanced graph or dynamic programming problems.
 
This project is licensed under the MIT License β feel free to use and modify it for personal or educational purposes.
Inspired by: GeeksforGeeks, LeetCode, Introduction to Algorithms (CLRS)
π§© βAn algorithm must be seen to be believed.β β Donald Knuth