Skip to content

An open source initiative for implementing and testing algorithms in various programming languages.

Notifications You must be signed in to change notification settings

mitcse/algorithms

Repository files navigation

Algorithms

An open source initiative for implementing and testing algorithms in various programming languages.

Contributing

The idea here is to learn algorithms by implementing, testing and analyzing them in a bunch of programming languages. I've attempted to do this for a few algorithms in C programming language (cough) with the help of a bunch of contributors while pursuing my UG degree.

As part of the 24 pull requests initiative, all contributions are welcome. Some examples may include:

  • Implementing an algorithm in a programming language of your choice.
  • Adding documentation (introduction, details, etc.) to an algorithm.
  • Adding tests and sample input generators to an algorithm.
  • Adding performance analysis charts to an algorithm.
  • Fixing bugs in existing implementations.
  • Refactoring ancient ugly-looking code.

Who might contribute to this

  • Students learning algorithms
  • Professionals looking to brush up their skills
  • Researchers
  • Robots

What will I get out of contributing?

  • Open source contributor badge
  • A nice looking GitHub profile
  • Knowledge and practice
  • Top student contributor between Dec 01 and Dec 24 will receive 24 MATIC tokens.

Table of contents

  • Basic

    • binary-search-tree
    • graph-representations
  • Brute Force

    • bubble-sort
    • knapsack
    • matrix-multiplication
    • partition
    • string-matching
    • subset-sum
  • GCD

    • conseq-integer
    • euclid
    • middle-school
  • Divide and Conquer

    • merge-sort
    • node-count
    • quick-sort
  • Decrease and Conquer

    • topological-sort
    • tree-diameter
  • Combinatorial and Graph

    • assignment
    • breadth-first-search
    • depth-first-search
  • Greedy Approach

    • dijkstra
    • floyd
    • huffman
    • knapsack
    • kruskal
    • warshall
  • Backtracking and Bounds

    • hamilton
    • knapsack
    • n-queens
    • subset-sum
  • Space Time Tradeoffs

    • closed-hash-table
    • horspool
    • open-hash-table
  • Transform and Conquer

    • avl-tree
    • heap-creation
    • heap-delete
    • heap-sort
    • two-three-tree
  • Other

    • nth-fibonacci
    • tower-of-hanoi