Skip to content

jingedawang/Algorithms

Repository files navigation

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 wjg172184@163.com.