A comprehensive collection of algorithms and data structures implemented in multiple programming languages. Perfect for learning, interview preparation, and contributing to open source!
C0D1NG is a community-driven organization dedicated to helping developers of all skill levels contribute to open source projects and improve their algorithmic problem-solving skills.
This repository serves as a comprehensive collection of algorithmic solutions and implementations. Whether you're:
- π Learning algorithms and data structures
- πΌ Preparing for technical interviews
- π Looking to contribute to open source
- π Teaching algorithmic concepts
You'll find valuable resources here! Each algorithm is implemented with clear, well-documented code and follows best practices.
Our collection is organized into the following categories:
Category | Description | Languages Available |
---|---|---|
π Backtracking | Solutions using backtracking approach | Python |
β‘ Divide and Conquer | Algorithms that break problems into subproblems | C, C++, Java, JavaScript, Python |
π Dynamic Programming | Optimization problems with overlapping subproblems | C++, Java, Python |
πΈοΈ Graph Algorithms | Graph traversal, shortest paths, and graph theory | C++, Java, Python |
π― Greedy Algorithms | Locally optimal choice algorithms | C++, Java, JavaScript, Python |
π Searching Algorithms | Various search techniques and optimizations | C, C++, Go, Java, Python, Ruby |
π Sorting Algorithms | Different sorting techniques and their variations | C, C++, Java, Python, Ruby |
π οΈ Others | Miscellaneous algorithms and problem solutions | Multiple languages |
We welcome implementations in any programming language! Currently, our repository includes:
- Git installed on your machine
- Your preferred programming language environment set up
- A text editor or IDE
-
Explore the repository structure:
Algorithms/ βββ Backtracking/ βββ Divide and Conquer/ βββ Dynamic Programming/ βββ Graph/ βββ Greedy/ βββ Searching/ βββ Sorting/ βββ Others/
-
Navigate to your area of interest:
- Choose an algorithm category
- Select your preferred programming language
- Browse existing implementations or identify gaps to fill
We welcome contributions from developers of all experience levels! Here's how you can get involved:
Click the "Fork" button at the top right of this repository to create your own copy.
git clone https://github.com/YOUR_USERNAME/Algorithms.git
cd Algorithms
git checkout -b feature/algorithm-name-language
# Example: git checkout -b feature/binary-search-python
- Navigate to the appropriate category folder
- Create or choose the language subfolder
- Add your implementation with a descriptive filename
- Follow our naming convention:
yourname_algorithm_name.extension
Ensure your implementation:
- Compiles/runs without errors
- Handles edge cases appropriately
- Includes example usage (if applicable)
git add .
git commit -m "Add [Algorithm Name] implementation in [Language]"
git push origin feature/algorithm-name-language
Then create a pull request from your fork to our main repository.
- Clear, readable code with appropriate comments
- Efficient implementations with good time/space complexity
- Proper error handling and edge case consideration
- Descriptive variable and function names
- Example usage when helpful
yourname_algorithm_name.extension
Examples:
alice_merge_sort.py
bob_dijkstra_algorithm.cpp
charlie_binary_search.java
Include at the top of your file:
"""
Algorithm: [Algorithm Name]
Author: [Your Name]
Description: [Brief description of what the algorithm does]
Time Complexity: O(?)
Space Complexity: O(?)
"""
- Use consistent indentation (4 spaces preferred)
- Follow language-specific conventions
- Add meaningful comments for complex logic
- Include docstrings/comments explaining the algorithm
- Test your code before submitting
Some examples of well-implemented algorithms in our collection:
- Merge Sort: Efficient divide-and-conquer sorting algorithm
- Dijkstra's Algorithm: Shortest path finding in graphs
- Dynamic Programming Solutions: Optimized recursive problem solving
- Binary Search: Efficient searching in sorted arrays
Join our vibrant community of developers and algorithm enthusiasts!
We appreciate all our contributors! Check out our Contributors page to see the amazing people who have helped build this collection.
- π’ Join our Telegram community
- οΏ½ Create an issue for bugs or questions
- π‘ Start a discussion for ideas
This project is licensed under the MIT License - see the LICENSE file for details.
- β Star this repository for future reference
- π΄ Fork the repository to your account
- π§ Pick an algorithm to implement or improve
- π Submit your pull request
- π Become part of the open source community!