Code Monkey home page Code Monkey logo

algorithms's Introduction

Algorithms

License: MIT build check-url codecov Gitpod

Welcome to the world of Algorithms.

This repository provides commonly used algorithms according to Introduction to Algorithms. Codes are implemented in Java, since it's a functional and flexible language, which can clearly show the principles of the algorithms.

As you know, the best way of mastering an algorithm is implementing it. But before that, you need to understand how it works. We have a great book Introduction to Algorithms which tells us about that. However, it's not always smooth to catch the point. What we did here is providing an easy-to-understand implementation, in which you can debug step-by-step. Then grasp the main idea of the algorithm by careful observation.

We created the most intuitive demos for each algorithm. Just run it, the core principle will flash on you at once.

Quick Start

We support Gitpod as online coding platform, you can try it here.

You can use either Intellij IDEA or Gradle to build and test the code locally. But you can only use Gradle as build tool online since Gitpod is using VSCode.

Intellij IDEA

We encourage you to open the project with IntelliJ IDEA, which can provide more flexible and powerful debug experiences.

Start IntelliJ IDEA, click [Open], choose the cloned Algorithms directory, confirm by clicking [OK]. Then you will be able to see the project structure.

To run a demo of an algorithm, please right-click the source file, choose [Run '<className>.main()'].

To run all tests, please right-click the test folder from the Project window, choose [Run 'All Tests'].

Gradle

If you don't have Intellij IDEA installed or if you are using Gitpod, it's also convenient to build and test with Gradle. You don't need to have Gradle installed, gradlew script will download a proper version for you during the first run.

To run a demo of an algorithm, use command like

./gradlew run -PclassName='<package>.<className>'

For example, run BFPRT algorithm like

./gradlew run -PclassName='select.BFPRT'

To run all tests, use command like

./gradlew test

Catalogue

To help people understand the core concept of each algorithm, we provided multiple resources. Except for code, you can click the book and blog links for more information.

Contribute

We highly encourage you to contribute to this project, especially if you are a beginner to algorithms. Read this Contributing Guideline to learn more.

Contact

Please create an issue or send E-mail to [email protected].

algorithms's People

Contributors

jingedawang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

algorithms's Issues

Add test code coverage badge

There are two popular code coverage tools: Codecov and Coverall.

The Codecov have good support for GitHub repository and have good UI, so we choose it.

Two things need to be done:

  1. Generate a code coverage report with gradle with JaCoCo plugin.
  2. Upload the report to Codecov.

Then the code coverage values will be shown in the web page and we can put a badge in the README.

Support Gitpod

Gitpod is an online IDE that can cooperate with GitHub. It looks helpful to add support to Gitpod.

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.