Skip to content

Latest commit

 

History

History
107 lines (95 loc) · 3.59 KB

File metadata and controls

107 lines (95 loc) · 3.59 KB

Algorithms and Data Structures Encyclopedia

Work in progress...

An encyclopedia of computer science algorithms and data structures.

Available languages

Algorithms

...

By default all the links below refer to Kotlin algorithm implementations. If you prefer another language feel free to check the list of available languages.

B - Base, A - Advanced

By category

By design paradigm

  • Greedy
  • Divide and conquer
    • ...
  • Dynamic programming
    • ...

Data structures

Project structure

algorithms
└── _tools
└── src
│   └── java
│   └── kotlіn
│   └── ...
│   └── <language-name>
│       └── _util
│       └── parallel
│       │   └── ...
│       └── sequential
│           └── graph
│           └── sorting
│           └── ...
│           └── <algorithm-category>
│               └── BUILD  <-- build target definition file
│               └── <src-file(s)>
└── WORKSPACE

How to build source code

All the source code in this project is built with Bazel build system. Learn more about Bazel...

Why Bazel?

Bazel provides a unified way of building projects with multiple programming languages. Bazel's glanularity allows to have many build targets where each contains only source code related to the specific algorithm or data structure.

Install on macOS

brew install bazelisk

Install on Windows, Linux and macOS

npm install -g @bazel/bazelisk

Learn more about other installation options.

Run algorithms

In order to run desired algorithm use the following command:

bazelisk run @kotlіn//sequential/graph/dijkstra:dijkstra

Where @kotlin can be replaced with any of the available languages.

Useful references

  • ...