Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tobyapi/crystalg
Algorithm Library for Crystal
https://github.com/tobyapi/crystalg
algorithm crystal
Last synced: 9 days ago
JSON representation
Algorithm Library for Crystal
- Host: GitHub
- URL: https://github.com/tobyapi/crystalg
- Owner: tobyapi
- License: mit
- Created: 2017-03-09T16:00:48.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-04-06T15:26:44.000Z (over 3 years ago)
- Last Synced: 2024-05-22T22:07:03.233Z (6 months ago)
- Topics: algorithm, crystal
- Language: Crystal
- Homepage:
- Size: 855 KB
- Stars: 37
- Watchers: 5
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-crystal - crystalg - A Generic Algorithm Library (Algorithms and Data structures)
- awesome-crystal - crystalg - A Generic Algorithm Library (Algorithms and Data structures)
README
[![GitHub release](https://img.shields.io/github/release/TobiasGSmollett/crystalg.svg)](https://github.com/TobiasGSmollett/crystalg/releases)
# Crystalg
A generic algorithm library for crystal-lang.
## Installation
Clone repository manually:
```sh
$ git clone https://github.com/TobiasGSmollett/crystalg && cd crystalg/
```Or add this to your application's `shard.yml`:
```yaml
dependencies:
crystalg:
github: TobiasGSmollett/crystalg
```## Usage
The fastest way to try it is by using Crystal Playground (`crystal play`):
```crystal
require "./crystalg"include Crystalg::Strings
input = "mississippi"
hash = RollingHash.new input
hash.count("issi") # => 2
```## Documentation
- [API Document](https://tobiasgsmollett.github.io/crystalg/)## Development
crystal spec
## To Do
* Graph
* Minimum-Cost Arborescence
* Strongly Connected Components
* Flow Alogorithm
* Minimum Cost Flow
* Data Structure
* Red Black Tree
* Link-Cut Tree
* String Algorithm
* Suffix Automaton
* Computational Geometry
* Closest Pair
* Segment Intersections
* Tangent to a Circle
* Common Tangent
* Intersection of a Circle and a Polygon## Contributing
1. Fork it ( https://github.com/TobiasGSmollett/crystalg/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request## Contributors
- [TobiasGSmollett](https://github.com/TobiasGSmollett) tobias - creator, maintainer