Skip to content

Morfly/cs-algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • ...