Giter Club home page Giter Club logo

algorithm-design-manual's Introduction

Implementations of data structures and algorithms inspired by Steven S. Skiena's The Algorithm Design Manual, The Second Edition.

Algorithms currently implemented:

Graphs
  • A generic network flow algorithm for calculating the maximum flow possible in a network.
  • A bipartite matching algorithm which uses a network flow algorithm to find the largest possible matching in a graph.
  • Breadth-First Search
  • Dijkstra's Algorithm for finding the shortest path.
  • Floyd's Algorithm for finding all shortest path pairs in a graph.
  • hamiltonian_cycle: Determine whether a graph G = (V, E) contains a hamiltonian cycle.
  • Kruskal's Algorithm for finding the minimum-spanning-tree.
  • Prim's Algorithm for finding the minimum-spanning tree.
Backtracking
  • Backtracking for subsets and permutations.
Dynamic Programming
  • A brute-force recursive partition-optimization routine.
  • Matrix-based edit distance.
  • Matrix-based integer partition.
Reductions
  • is_satisfiable: Whether a given set of clauses C over a set of variables V can be satisfied via some truth assignment of each variable vi.
  • set_cover: Whether a set cover for a set X can be constructed from k subsets chosen from a family of subsets F.
  • Translations into 3SAT for any satisfiability instance.
  • vertex_cover_to_set: Solve a vertex cover instance by converting it to a satisfiability instance.
  • vertex_cover_to_set_cover: Prove that set cover is NP-complete with a reduction from vertex cover.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.