Awesome Open Source
Awesome Open Source


License: MIT Gitter

codezilla 🦖 One giant collection of algorithms & design patterns.

The pandora box of algorithms and data structures

Feel free to contribute. Create an issue, let others know which algorithm/data structure you are planning to add. Fork the repo. And make a PR!

The goal is to create a codebase for developers to access. Later we aim to develop extensions using this codebase to support multiple IDEs.

How To Contribute to This Project

Here are 3 quick and painless steps to contribute to this project:

Star this repository to show your support for Asiatik

  • Add a a program to implement an algorithm in any language. To do so, first create an issue with the task you are doing, for example: "Issue - creating bubble sort in C". Create a pull request in response to that issue and finally submit it for review.

  • Name your branch Like #23 Add Bubble Sort in C.

    Also create a directory for any new algorithm if it doesn't exist. eg. observable_pattern, bubble_sort. Inside these directories you can create a folder for the programming language you want to add. And finally add your own file named program_name.language_extension (bubble_sort.cpp) Create a commit of the form - fixes #(issue_number)

Make sure you adhere to the algorithm/language/file folder structure while adding code.

Easiest way (Recommended) ⭐️ -You can run bash on your terminal to make the appropriate file structure

Additionally we recommend using standard convention for your language such as indentation and variable naming while writing the algorithm. Useful comments will be a help. Finally, if you can write tests for you code, we urge you to do so.

  • Finally, wait for it to be merged!

Getting Started

  • Fork this repository (Click the Fork button in the top right of this page, click your Profile Image)

  • Clone your fork down to your local machine

    $ git clone

    For e.g:-

    $ git clone

    in the above example Anujg935 is the username of the user who is forking the repository.

  • Create a branch

    $ git checkout -b branch-name
  • Make your changes

  • Commit and Push

    $ git add filename 
    $ git commit -m 'commit message'
    $ git push origin branch-name
  • Create a New Pull Request from your forked repository (Click the New Pull Request button located at the top of your repo)

  • Wait for your PR review and merge approval!

Star this repository to show your support for Asiatik

Don't forget to include the comments as seen above. Feel free to include additional information about the language you chose in your comments too! Like a link to a helpful introduction or tutorial.

Reference Links

Additional References Added By Contributors

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Javascript (1,061,402
Python (808,766
Java (388,879
C Plus Plus (239,140
C (182,223
Algorithms (37,458
Programming (18,136
Functional Programming (10,980
Data Structure (9,610
Design Pattern (3,098
Hacktoberfest2018 (169