- Simple Steps to Get Started
- File and Folder Naming Guidelines
- Writing code
- Various Ways to Contribute
- If you are new to Github / Git, no need to get intimidated.
- You can simply contribute by using the Github website UI (User Interface).
- Fork this repository. This will create your own copy of this repo.
- Make whatever changes you want (Acc. to the simple rules mentioned below, obviously)
- Then, make a pull request.
- Your pull request will be merged after review! Simple! Done !
- Now, repeat !
In case you're interested, here's a quick guide to Git. Link
- File name should be in full lowercase.
- Names for referencing all 5 languages should be as follows: python, c, cpp, java, js.
- Please use cpp for C++ file naming.
- For Data Structures, file names should be of the format:
<Language>-<Data Structure>-<Version Number>
For eg: python-singly_linked_list.py
- For Algorithms, file names should be of the format:
<Language>-<Data Structure>-<Time Complexity>-<Version Number>
For eg: python-factorial-O(n).py
- Version Number is used when there is already an implementation of an algorithm/data structure and you want to submit a better implementation.
- Use separate folders for each concept under the Algorithm/ Data Structure directory. Folder name should be in full lowercase. If the algorithm/DS name has multiple words, separate them by underscores.
For eg: linked_list folder in Data_Structures folder
- Before you push your changes to GitHub, make sure that your code compiles and runs without any errors or warnings.
- Currently we are accepting contributions in C, C++, Java, Python and JavaScript.
- Use meaningful variable, method and function names and comments.
- No profanity.
- If you feel you can improve upon an implementation( with regard to coding practices, complexity), then you can submit your code keeping in mind the File & Folder Naming Guidelines.
Please NOTE: In case, same implementation of an algorithm is submitted by someone else and it gets accepted, then your contribution won't be merged ( to avoid duplicates ).
- implementing new algorithms in the repo, under the right section. Make a new section for it if it doesn't fall under any section. Make sure that your implementation works.
- optimizing or improving the existing algorithms.
- adding a different solution for the problem.
- finding and fixing bugs.
Also NOTE: In case an issue already exists regarding your pull request make sure to # (hashtag) the issue number (eg: #1)
- These contributing guidelines were framed with some help/ inspiration from the following repos: