Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pawel-kieliszczyk/algorithms
Efficient algorithms and data structures
https://github.com/pawel-kieliszczyk/algorithms
algorithm cpp03 spoj topcoder
Last synced: about 1 month ago
JSON representation
Efficient algorithms and data structures
- Host: GitHub
- URL: https://github.com/pawel-kieliszczyk/algorithms
- Owner: pawel-kieliszczyk
- License: mit
- Created: 2014-11-20T17:01:47.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2019-04-25T20:13:39.000Z (over 5 years ago)
- Last Synced: 2024-09-29T00:40:57.527Z (about 2 months ago)
- Topics: algorithm, cpp03, spoj, topcoder
- Language: C++
- Homepage:
- Size: 1.62 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Algorithms and data structures
## Overview
C++ library of algorithms and data structures focused on easy use and very high performance. Might be useful in algorithmic competitions such as TopCoder or Sphere Online Judge. This is a header only library compatible with C++03 standard.
## Continuous integration status
[![Build Status](https://travis-ci.org/pawel-kieliszczyk/algorithms.svg)](https://travis-ci.org/pawel-kieliszczyk/algorithms)
[![Coverage Status](https://img.shields.io/coveralls/pawel-kieliszczyk/algorithms.svg)](https://coveralls.io/r/pawel-kieliszczyk/algorithms?branch=master)## Performance
The library focuses on high performance both minimizing computational complexity of all algorithms and maximizing possibility of efficient CPU caching. All data structures have fixed but custom maximum capacity and perform no memory reallocations once constructed.
## Features
+ STL-like containers
+ popular algorithms and data structures
+ graph library
+ compile-time algorithms#### Data structures
+ vector
+ stack
+ queue
+ priority queue
+ cyclic array
+ disjoint sets
+ interval tree (1D, 2D, 3D and 4D)
+ binary indexed tree (1D, 2D and 3D)
+ binary search tree
+ red-black tree#### Algorithms
+ greatest common divisor
+ least common multiple
+ multiplication of integer numbers without overflow
+ modular multiplicative inverse
+ longest monotonic subsequence (all 4 versions)
+ fast Fibonacci numbers calculator
+ Knuth's prefix function
+ Manacher's algorithm for finding palindromic substrings
+ shortest text template
+ sieve of Eratosthenes
+ prime numbers generator
+ majority element
#### Graphs
+ graph class
+ bipartite graph class
+ depth first search
+ breadth first search
+ topological sort
+ finding connected components
+ finding strongly connected components (Tarjan's algorithm)
+ Kurskal's minimum spanning tree algorithm
+ Prim's minimum spanning tree algorithm (incoming improvements)
+ Dijkstra's algorithm for finding shortest paths
+ Floyd-Warshall algorithm for finding shortest paths
+ Edmonds-Karp algorithm for finding maximum flow
+ Dinic's algorithm for finding maximum flow
+ Hopcroft-Karp algorithm for finding maximum matching in bipartite graphs
#### Geometry
+ point class
+ line segment class
+ distance between two points
+ checking if 3 points are collinear
+ detecting if a point is on a line segment
+ detecting intersection of line segments
+ convex hull#### Compile-time algorithms
+ greatest common divisor