https://github.com/gregl83/algostru
Algorithms and Structures powered by Rust
https://github.com/gregl83/algostru
algorithm algorithms asymptotic-analysis big-o-notation data-structures rust struct
Last synced: 7 months ago
JSON representation
Algorithms and Structures powered by Rust
- Host: GitHub
- URL: https://github.com/gregl83/algostru
- Owner: gregl83
- License: mit
- Created: 2020-12-16T03:03:36.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-06-20T16:32:24.000Z (over 1 year ago)
- Last Synced: 2025-04-09T21:55:03.849Z (7 months ago)
- Topics: algorithm, algorithms, asymptotic-analysis, big-o-notation, data-structures, rust, struct
- Language: Rust
- Homepage:
- Size: 153 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/gregl83/algostru/actions?query=workflow%3ACI+branch%3Amain)
[](https://crates.io/crates/algostru)
[](https://github.com/gregl83/algostru/blob/master/LICENSE)
# algostru
Algorithms and Structures powered by Rust.
## Stability
Experimental
Demonstration of Asymptotic Notation without granular scrutiny on operation specific performance.
## Contents
This repository is comprised of a command line interface tool and library of algorithms and data structures.
### Command Line Interface (CLI)
CLI tool *might* grow into toolset to aid with algorithm and data structure implementations.
For now, there is simply a **Big-O Cheatsheet** rendered in your terminal using ASCII.
Either `cargo run` or `cargo install` should work fine from repository root.
### Library
- Arithmetic
- Multiplication
- [Karatsuba](/src/arithmetic/multiplication/karatsuba.rs) *O(n^log3)*
- Collections
- Multiplication
- [Strassen](/src/collections/multiplication/strassen.rs) *O(n^log7)*
- Ordering
- [Bubble Sort](/src/collections/ordering/bubble_sort.rs) *O(n^2)*
- [Insertion Sort](/src/collections/ordering/insertion_sort.rs) *O(n^2)*
- [Merge Sort](/src/collections/ordering/merge_sort.rs) *O(n log(n))*
- [Merge Sort Inversion Count](/src/collections/ordering/merge_sort_inversion_count.rs) *O(n log(n))*
- [Quick Sort](/src/collections/ordering/quick_sort.rs) *O(n log(n))*
- [Selection Sort](/src/collections/ordering/selection_sort.rs) *O(n^2)*
- [Tim Sort](/src/collections/ordering/tim_sort.rs) *O(n log(n))*
- Search
- [Closest Pair](/src/collections/search/closest_pair.rs) *O(n log(n))*
- Trees
- [Binary Search Tree](/src/trees/binary_search_tree.rs)
- [Merkle Tree](/src/trees/merkle_tree.rs)
- [Radix Tree](/src/trees/radix_tree.rs)## Usage
See [docs.rs/algostru](https://docs.rs/algostru/).
## References
- [Stanford Algorithms Specialization](https://www.coursera.org/specializations/algorithms)
- [Mathematics for Computer Science](http://courses.csail.mit.edu/6.042/spring18/mcs.pdf)
- [Mathematics for Computer Science Video Lectures](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/)
- [Big-O Cheatsheet](https://www.bigocheatsheet.com/)## License
[MIT](LICENSE)