[Show ❀️ love by 🌟] Your personal library of every algorithm and data structure code that you will ever encounter
C++ Java Python C JavaScript Swift Other
Switch branches/tags
Nothing to show
Latest commit 06051f1 Oct 21, 2017 @AdiChat AdiChat Merge pull request #2197 from Tikam02/patch-1
Prim's-minimum spanning tree.



The universe of algorithm and data structures

Cosmos is your personal offline collection of every algorithm and data structure one will ever encounter and use in a lifetime. This provides solutions in various languages spanning C, C++, Java, Python, Go and others.

This work is maintained by a community of hundreds of people and is a massive collaborative effort to bring the readily available coding knowledge offline.

Many coders ask me how to improve their own performances. I cannot say anything except "solve and review and prepare your library" - Uwi Tenpen

Cosmic Structure

Following is the high-level structure of cosmos:

  • Artificial intelligence
  • Backtracking
  • Bit manipulation
  • Cellular automaton
  • Computational geometry
  • Cryptography
  • Data structures
  • Divide conquering
  • Dynamic programming
  • Graph algorithms
  • Greedy algorithms
  • Mathematical algorithms
  • Operating system
  • Randomized algorithms
  • Searching
  • Selecting
  • Sorting
  • Square root decomposition
  • String algorithms
  • Unclassified πŸ‘»

Each type has several hundreds of problems with solutions in several languages spanning C, C++, Java, Python, Go and others.


This is a massive collaboration and to keep the quality intact and drive the vision in the proper direction, we have maintainers.

Maintainers are your friends forever. They are vastly different from moderators.

The task of maintainers is to review pull requests, suggest further quality additions and keep the work up to date with the current state of the world. 🌍

Check out our current maintainers

Let us know that you would like to be a maintainer in the Slack channel #algorithms and we will review and add you upon subsequent contributions. Join us at Slack.


The success of our vision to bring knowledge offline depends on you. Even a small contribution helps. All forms of contributions are highly welcomed and valued.

When you contribute, your name with a link (if available) is added to our contributors list.

If contributing code, please refer to the available style guides.


We believe in freedom and improvement. GNU General Public License v3.0