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