Work in progress...
An encyclopedia of computer science algorithms and data structures.
...
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
- Graph
B
Breadth-first traversal - BFSB
Deapth-first traversal - DFS, recursive and iterative implementations.B
Topological sorting - based on DFS, recursive and iterative implementations.B
Dijkstra's algorithm - greedy algorithm, finding shortest/fastest path to vertex.
- Maze
- Generation
- ...
- Pathfinding
- ...
- Generation
- Sorting
B
Selection sortB
Insertion sortB
,A
Shellsort - including 14 gap sequences.B
Merge sortB
Quicksort - including Lomuto's and Hoare's partition schemes.B
Bubble sortB
Radix sort
- Shuffling
- ...
- Greedy
B
Dijkstra's Algorithm - greedy algorithm, finding shortest/fastest path to vertex.- ...
- Divide and conquer
- ...
- Dynamic programming
- ...
- Graph
- Tree
- Heap - including max and min version.
- Hash table
- ...
algorithms
└── _tools
└── src
│ └── java
│ └── kotlіn
│ └── ...
│ └── <language-name>
│ └── _util
│ └── parallel
│ │ └── ...
│ └── sequential
│ └── graph
│ └── sorting
│ └── ...
│ └── <algorithm-category>
│ └── BUILD <-- build target definition file
│ └── <src-file(s)>
└── WORKSPACE
All the source code in this project is built with Bazel build system. Learn more about 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.
brew install bazelisk
npm install -g @bazel/bazelisk
Learn more about other installation options.
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.
- ...