A beginner-friendly open-source repository for learning and contributing basic algorithms in C, C++, and Python.
AlgoVault is a project under ABV-IIITM IEEE Student Branch designed to help students learn about Git, GitHub, and open-source contribution while mastering fundamental algorithms. This repository serves as a collection of clean, well-documented implementations of basic algorithms across three popular programming languages.
Whether you're new to programming or looking to strengthen your understanding of algorithms, AlgoVault provides a structured and welcoming environment to learn and contribute.
- Provide clear, beginner-friendly implementations of fundamental algorithms
- Teach students practical Git and GitHub workflows
- Foster open-source contribution skills
- Build a comprehensive algorithm library in C, C++, and Python
- Create a collaborative learning environment
AlgoVault/
│
├── c/ # C implementations
│ ├── sorting/
│ ├── searching/
│ └── README.md
│
├── cpp/ # C++ implementations
│ ├── sorting/
│ ├── searching/
│ └── README.md
│
├── python/ # Python implementations
│ ├── sorting/
│ ├── searching/
│ └── README.md
│
├── .github/ # GitHub templates and workflows
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── algorithm_request.md
│ │ └── documentation.md
│ └── PULL_REQUEST_TEMPLATE.md
│
├── CONTRIBUTING.md # Contribution guidelines
├── CODE_OF_CONDUCT.md # Community standards
├── LICENSE # MIT License
└── README.md # This file
| Language | Version | File Extension |
|---|---|---|
| C | C99+ | .c |
| C++ | C++11+ | .cpp |
| Python | 3.6+ | .py |
- Sorting: Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, etc.
- Searching: Linear Search, Binary Search, Jump Search, etc.
- More categories coming soon!
We welcome contributions from developers of all skill levels! Here's how you can get started:
- Fork this repository to your GitHub account
- Clone your fork locally:
git clone https://github.com/your-username/AlgoVault.git cd AlgoVault - Create a new branch for your contribution:
git checkout -b add-algorithm-name
- Add your algorithm following our guidelines (see below)
- Commit your changes with a clear message:
git commit -m "Add bubble sort in Python" - Push to your fork:
git push origin add-algorithm-name
- Open a Pull Request to the main repository
📖 For detailed contribution guidelines, please read CONTRIBUTING.md
- Use snake_case for all file names
- Be descriptive and specific
- Examples:
bubble_sort.py,binary_search.cpp,quick_sort.c
- ✅ Include clear comments explaining the algorithm
- ✅ Add time and space complexity at the top of the file
- ✅ Keep code simple and readable (target beginners)
- ✅ Test your code before submitting
- ✅ Follow language-specific conventions (see language README files)
- ❌ No plagiarism - write original implementations
- ❌ No unnecessary dependencies
Python Example (python/sorting/bubble_sort.py):
"""
Bubble Sort Algorithm
Time Complexity: O(n²) in worst and average case, O(n) in best case
Space Complexity: O(1)
Description:
Bubble sort repeatedly steps through the list, compares adjacent elements
and swaps them if they're in the wrong order. The process repeats until
the list is sorted.
"""
def bubble_sort(arr):
"""
Sorts an array using bubble sort algorithm
Args:
arr: List of comparable elements
Returns:
Sorted list
"""
n = len(arr)
for i in range(n):
# Flag to optimize by stopping if no swaps occur
swapped = False
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
swapped = True
if not swapped:
break
return arr
# Example usage
if __name__ == "__main__":
sample_array = [64, 34, 25, 12, 22, 11, 90]
print(f"Original array: {sample_array}")
sorted_array = bubble_sort(sample_array.copy())
print(f"Sorted array: {sorted_array}")- Check the Issues tab for open tasks
- Look for issues labeled
good first issueorhelp wanted - Comment on an issue to get assigned before starting work
- If you have a new algorithm idea, create an issue first!
All contributors will be recognized! Your contributions help:
- Build your open-source portfolio
- Strengthen your GitHub profile
- Improve your algorithm knowledge
- Help fellow students learn
This project is licensed under the MIT License - see the LICENSE file for details.
ABV-IIITM IEEE Student Branch
For questions, suggestions, or support:
- Open an issue on GitHub
- Contact: abv.iiitm.ieee@example.com (Update with actual contact)
Thanks to all contributors who help make AlgoVault a valuable learning resource for students worldwide!
If you find this project helpful, please give it a star! It helps others discover this resource.
Happy Coding! 🚀