About • Getting Started • Request Feature • Changelog • Contribute • License
This project compiles a list of common computer science algorithms, demonstrating their implementation in a range of modern programming languages. Currently, the following languages are supported:
To clone this repository, run the following command.
git clone https://github.com/ollyrowe/algorithms.git
To contribute to this project, you must first make a fork of the repository and then clone the fork.
git clone https://github.com/<your_username>/algorithms.git
After cloning the repository, run the following command to install the required dependencies.
npm install
All resources held within this project can be seen from the website. This site hosts an up-to-date view of all algorithms, data structures and additional general resources held within this repository.
The website is built with the Vue framework with support from the Buefy component library.
The relevant steps to setting up and configuring the development environnement for the website can be seen below.
The source code for the website can be found within the ./website
folder of this repository.
After cloning the repository, step into the website directory and install the dependencies.
cd website
npm install
To run the local development environment, the following command can be used.
npm run serve
To re-compile the website's content, the following command can be ran.
npm run compile-content
Note that this command is automatically ran when running
npm run serve
This command parses the resources held within the root directories of this repository to a JSON file which is then read by the hosted site. Currently, this script accounts for the following folders and file signatures which supports resource folders and a set of files for each language implementation in addition to a general information file.
├── algorithms
│ ├── <resource>
│ │ ├── <resource>-info.txt
│ │ ├── <resource>.cs
│ │ ├── <resource>.java
│ │ ├── <resource>.js
│ │ ├── <resource>.py
│ │ ├── <resource>.ts
├── data-structures
│ ├── ...
└── general
└── ...
The development environnement requires the installation of both ESLint and Prettier. If you are using Visual Studio Code, the supporting extensions should also be installed and configured.
To lint and fix files from the command line, the following command can be used.
npm run lint
A production build of the website can be compiled with the following command.
npm run build
This project makes use of GitHub Actions to enable continuous integration and deployment of new features into the master branch which is automatically deployed to GitHub Pages.
To request a new algorithm or website feature, feel free to submit an issue. Pull requests are also welcome.
Quick links:
The project changelog can be found here.
To contribute to the project, feel free to make a fork and submit a pull request. This project makes use of Conventional Commits to enable automated Semantic Versioning.
This project is licensed under the terms of the MIT license.