Giter Site home page Giter Site logo

m-payal / ds_algorithms Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tulika-99/ds_algorithms

0.0 0.0 0.0 628 KB

A collection of various Algorithms for Data Structures in different languages. HacktoberFest2020 :octocat:

Java 24.04% C++ 38.18% Python 19.31% JavaScript 0.70% C 16.37% Ruby 1.40%

ds_algorithms's Introduction

DS Algorithms

A collection of different types of algorithms used for various different Data Structures, in different languages. This repository is open to all. To help you out with your Hacktoberfest goals!!
All you need to do is just add any sorting algorithm of your choice in any language you like with only the condition that it hasn't already been added.

Structure of the Repository

  • The Repository contains folders with names of Data Structures the Algorithms are based on, or the Name of the Algorithms if its valid for multiple data Structures.
  • Inside each folder there maybe subfolders for the specific Algorithms.
  • Each Algorithm folder contains
  1. A Text file or an MD file which contains the Theory/ Explanation of the Algorithm
  2. and Several other files containing the code for the same, for different languages.
    These files MUST BE NAMED in the format Algorithm Name - language. ( Eg: Binary Search - C++ )

Example:
Trees -> Inorder Traversal -> InorderTraversal- C++, Inorder Traversal-Python
Graphs -> Bellman Ford -> Bellman Ford-C++, BellmanFord-Java,....

What can you contribute ?

You can either add

  • The theory/explainations of the Algorithms
    ( Discuss the approach, Time and Space Complexities, Examples, etc. )
    (Please add references as well, if used)

  • Code for the Algorithm in a language of your choice.

Guidelines

  • Go Inside the Data Structure or Algorithm folder (if already created, else create one).
  • Go inside the folder with the specific Algorithm Name. If not present then create a new folder with the name of the algorithm and add your files in it.
  • Create a .txt file with the Algorithm Theory/Explanation or a solution file which contains the code for the Algorithm, named acc to the language used to implement it. ( Eg: Inorder Traversal-C++ )
  • Add this file inside the folder with the name of the algorithm you have implemented.
  • If you have some specific details u need to add according to the implementation in a specific language, add it as comments in the code, or create a sub-folder (Algo Name - language) and add the text file and the code files.
    (Can also be done in case the implementation in a language requires more than one file.)
  • A more organized and structured pull request has gretaer chances to be approved. (Cuz maintainers are Lazy AF)

Steps

  • Fork this repo (button on top)
  • Star this repo (button on top)
  • Clone the repo on your local machine
git clone https://github.com/your-username/DS_Algorithms.git
  • Create a new folder with the algorithm name.
  • Add your Theory/ Explanation or Code file in that folder. ( Please keep in mind the naming of the files) (Algorithm Name - language)
  • Commit and push
git add .
git commit -m "Added <algorithm-name> in <language>"
git push origin master

Links to help you out

In case you find the steps given above as vague and unclear, feel free to look up these amazing articles
https://help.github.com/en/articles/adding-a-file-to-a-repository-using-the-command-line https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github
https://medium.com/@saumya.ranjan/how-to-write-a-readme-md-file-markdown-file-20cb7cbcd6f

Note

  • Avoid overwriting other people's contributions, adding spaces and tabs or making any other type of invalid pull requests.
    (They will be marked invalid and won't be counted in your HacktoberFest goals.) ( PS- If you find any such requests, please report to me.)
  • No Array or Linked List Sorting Algorithms please We already have a repo for that from last year : https://github.com/tulika-99/sorting-algorithms
  • If you have any other doubts, feel free to discuss in the issue.

Idea for some algorithms :

  • Searching Algorithms
  • Graph Algos ( Bellman Ford ,Topological sort, BFS,DFS,Dijkstra, Min spanning tree algos)
  • Tree Algos
  • Stacks ( inorder and post order expressions)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.