Awesome Open Source
Awesome Open Source

PRs Welcome GitHub pull requests GitHub issues Github All Contributors


The goal of this project is to have in a single place all possible algorithms and data structures - in multiple languages. We aim to achieve this collaboratively, so feel free to contribute in any way you want, just make sure to follow the contribution guidelines listed below.

In case you have any questions, feel free to tag one of the repo admins in your issue/PR (don't assign us to any issue!): Syed Farhan(@born-2learn), Ricardo Prins(@ricardoprins), Harsh Mishra(@HarshCasper).


Our content is divided by programming language. Please create an issue if you wish to add code in a language that we don't currently have here. Do not create folders in your submissions, unless specifically told to do so.

Also, we are accepting submissions to our Wiki section. Please let us know if you'd like to contribute to an article.

Contributing Guidelines

  • Issues will be assigned on a first come, first serve basis. You just have to comment on the issue, asking to be assigned, and it will be done if found fit.
  • Preferably, you cannot work on any issue that is not assigned to you.
  • In case you want to submit an improvement to an existing algorithm, we prefer that you create an issue, describing in details your improvement. This will help others to analyze your contribution. You can use the templates that we have provided :)
  • If you have anything else in mind, create an issue and please wait for it to be assigned to you. You can then start working on it and create a PR.
  • All PRs must be made from a Branch. Create a separate branch for every Issue you are working upon and once found fit, make a PR.
  • If you have no idea what are issues or PRs, please do refer to this link

Make sure your code works before submitting it :D

Where to upload the files


  • Your files should be uploaded directly into the corresponding folder (e.g. if you wrote code for a Data Structure in Python, it goes inside the DS folder within the Python folder and so on)
  • Edit the corresponding file to add the link to your code in the corresponding section (GitHub Markdown Guide)
  • Under no circumstances create new folders within the language folders to upload your code unless specifically told to do so.
  • Also, be polite with the reviewers - they will be ALWAYS polite to you.

Our Contributors

Code of Conduct

You can find our Code of Conduct here.


This project follows the MIT License.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (66,446
python (48,353
java (29,671
c-plus-plus (16,970
c (14,099
go (13,811
c-sharp (11,231
jupyter-notebook (5,447
hacktoberfest (4,357
algorithms (390
data-structures (341

Find Open Source By Browsing 7,000 Topics Across 59 Categories