• Stars
    star
    37
  • Rank 697,295 (Top 15 %)
  • Language
    Crystal
  • License
    MIT License
  • Created about 7 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Algorithm Library for Crystal

GitHub release

Crystalg

A generic algorithm library for crystal-lang.

Installation

Clone repository manually:

$ git clone https://github.com/TobiasGSmollett/crystalg && cd crystalg/

Or add this to your application's shard.yml:

dependencies:
  crystalg:
    github: TobiasGSmollett/crystalg

Usage

The fastest way to try it is by using Crystal Playground (crystal play):

require "./crystalg"

include Crystalg::Strings

input = "mississippi"
hash = RollingHash.new input
hash.count("issi") # => 2

Documentation

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