Giter Site home page Giter Site logo

c-algorithms's Introduction

PRs Welcome Slack Status

  • Join osDFS on Slack and then search for #c-algorithms

C-Algorithms

Our open source community is focussed on understanding the concepts and while doing so, whenever someone gets trapped, they can see one way to code in any language they want. So, we are developing a repository having implementation in as many languages as we can. But for now we are focused only on C languages. Soon we will work on another language as well.

All Algorithms implemented in C (for learning)

Contribute algorithms written in C language. It's beginner friendly! Feel free to work on an open an issue and commit if you have a more efficient way of implementing an algorithm. You can!

Getting Started

  • Fork this repository (Click the 'Fork' button, top right of this page)
  • Clone your forked copy of this repo down to your local machine:
git clone https://github.com/<insert-your-username>/C-Algorithms.git
  • Change directory to get inside repository:
cd C-Algorithms
  • Create a branch for a new algorithm contribution:
git checkout -b feature/<name-of-algorithm>
  • Or if its a bugfix to a file:
git checkout -b bugfix/<title-of-issue>
  • Make your changes locally
  • Stage and commit changes:
git add .
git commit -m 'commit message'
  • Push changes to GitHub:
git push origin <branch-name>
  • Create a New Pull Request (PR) from your forked repository on GitHub (Click the 'New Pull Request' Button located at the top of your repo)
  • Wait for your PR review and merge approval!
  • Star this repository if you had fun! :)

Sync it ♻️

Always keep your local copy of repository updated with the original repository. Before making any changes and/or in an appropriate interval, run the following commands carefully to update your local repository.

# Fetch all remote repositories and delete any deleted remote branches
$ git fetch --all --prune

# Switch to `master` branch
$ git checkout master

# Reset local `master` branch to match `upstream` repository's `master` branch
$ git reset --hard upstream/master

# Push changes to your forked `Algo_Ds_Notes` repo
$ git push origin master

Create a new branch ‼️

Whenever you are going to make contribution. Please create seperate branch using command and keep your master branch clean (i.e. synced with remote branch).

It will create a new branch with name Branch_Name and switch to branch Folder_Name

$ git checkout -b Folder_Name

Create a seperate branch for contibution and try to use same name of branch as of folder.

To switch to desired branch

To switch from one folder to other

$ git checkout Folder_Name

To add the changes to the branch. Use

To add all files to branch Folder_Name

$ git add .

Type in a message relevant for the code reveiwer using

This message get associated with all files you have changed

$ git commit -m 'relevant message'

Now, Push your awesome work to your remote repository using

To push your work to your remote repository

$ git push -u origin Folder_Name

Finally, go to your repository in browser and click on compare and pull requests. Then add a title and description to your pull request that explains your precious effort.

New to Open Source?

Check out the following resources:

What to contribute?

  • You can check the Issues tab on the top and comment on the one you want to work on.
  • You can also suggest addition of new algorithms. Just create an 'Issue' here.
  • You can also contribute your solutions to problems from LeetCode: LeetCode
    • Place your code in '/LeetCodeSolutions' folder with number and name of the problem as the file name.
  • You can also contribute your solutions to problems from Project Euler: Project Euler
    • Place your code in '/ProjectEulerSolutions' folder with number and name of the problem as the file name.

References 📋 📜

  • Books 📖 📚
    • Data Structures with C by Schaum Series
    • Data Structures: A Pseudocode Approach with C by Richard F. Gilberg
    • Fundamentals Of Data Structures in C by Horowitz
    • Introduction To Algorithms By Thomas H. Cormen
    • Computer Oriented Numerical Methods By V. Rajaraman
  • Websites 💻

c-algorithms's People

Contributors

abjklk avatar akashmodak97 avatar loganrane avatar nizunc avatar rohitrathore1 avatar

Stargazers

 avatar

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.