This repository contains solutions to common problems, use cases and challenges within the field of computer science, and explores each of these solutions through multiple languages and methodologies. In addition to the language specific sources, the project is designed to be built from a CLI, provided you have each of the necessary binaries installed to your bash source, you should have no trouble running the application.
- cli: CLI Application Source.
├── bin ├── scr │ ├── build/ │ └── system/ └── src
- ent: Language Build Sources.
├── input │ ├── *lang │ │ ├── main.*ext │ │ ├── problems/ │ │ ├── services/ │ │ └── usecases/ └── output
- docs: Project Documentation.
Language | Ext. | Attributes | Source Shortcuts | Language References |
---|---|---|---|---|
C | .C | GP, I, ST | ent/C | Jump To |
C-Plus-Plus | .CPP | GP, I, ST, OO | ent/C-Plus-Plus | Jump To |
C-Sharp | .CS | GP, I, MP, OO | ent/C-Sharp | Jump To |
Objective-C | .M | GP, OO | ent/Objective-C | Jump To |
Swift | .SWIFT | GP, MP | ent/Swift | Jump To |
Java | .JAVA | GP, OO | ent/Java | Jump To |
Kotlin | .KT | ST, GP, TI | ent/Kotlin | Jump To |
JavaScript | .JS | GP, MP | ent/JavaScript | Jump To |
PHP | .PHP | SCR | ent/PHP | Jump To |
Python | .PY | GP | ent/Python | Jump To |
Ruby | .RB | GP, OO | ent/Ruby | Jump To |
Go | .GO | GP, ST | ent/Go | Jump To |
Scala | .SCALA | GP, ST | ent/Scala | Jump To |
Lua | .LUA | MP, LW | ent/Lua | Jump To |
Rust | .RS | MP | ent/Rust | Jump To |
Perl | .PERL | GP | ent/Perl | Jump To |
Shorthand | Definition |
---|---|
I | Imperative |
GP | General Purpose |
ST | Statically Types |
WT | Weakly Typed |
OO | Object Oriented |
MP | Multi-Paradigm |
TI | Type-Inference |
SCR | Scripting Lang. |
LW | Light Weight |
Name | Average Complexity | Worst Complexity | Basic Definition |
---|---|---|---|
Selection | n^2 | n^2 | O time complex |
Insertion | n^2 | n^2 | product build one increment per operation |
Bubble | n^2 | n^2 | swap pairs in list upon full incrementation of input |
Quick | n*log(n) | n^2 | O efficient, ordering list |
Heap | n*log(n) | n*log(n) | sorts heap binary tree by comparing size of max input |
Merge | n*log(n) | n*log(n) | divides complex input to smaller subset problems |
Shell | n*log(n)^2 or n^(3/2) | n/a | complex application of general sort algorithm |
Topological | n/a | n/a | linear order of input vertices |
- Structure and Interpretation of Computer Programs: Fundamental principles of Computer Science.
- An Introduction to Algorithms: General introduction to algorithms and their applications.
- Concrete mathematics: Concepts of Computer Science from a mathematical perspective.
- Project Euler: A website dedicated to the fascinating world of mathematics and programming.