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
, JavaScript
, Swift
, 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
Following is the high-level structure of cosmos:
- Artificial intelligence π€
- Backtracking
- Bit manipulation
- Cellular automaton π
- Compression algorithms
- Computational geometry βοΈ
- Cryptography
- Data structures
- Design pattern
- Divide conquering
- Dynamic programming
- Graph algorithms
- Greedy algorithms
- Mathematical algorithms π’
- Networking π
- Numerical analysis π
- Online challenges
- 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.
Currently, we have 5 active maintainers and we are expanding quickly.
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 if you would like to be a maintainer in the Slack channel #algorithms and we will review and add you upon subsequent contributions. To join our massive community at Slack open an issue here.
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.
Currently, we have over 700 contributors
When you contribute, your name with a link (if available) is added to our contributors list.
You can contribute by writing code
, documentation in the form of installation guides
and style guides
, making Cosmos search friendly and many others. There are endless possibilities.
Additionally, you might want to take a look at this contributing guidelines before you make Cosmos better.
You may, also, refer to the available style guides before contributing code.
We believe in freedom and improvement. GNU General Public License v3.0