8 releases
0.2.2 | Feb 7, 2022 |
---|---|
0.2.1 | Feb 3, 2022 |
0.1.4 | Feb 21, 2021 |
0.1.2 | Aug 28, 2020 |
#854 in Algorithms
54KB
1K
SLoC
Mandatory readme
This crate provides various different sorting algorithms both implemented directly on
any Vec
implementing certain things and also as standalone functions.
Examples
Using the trait implementations:
use sort_it::prelude::*;
fn main() {
let mut v = vec![9, 8, 7, 6, 5, 4, 3, 2, 1];
println!("original v: {:?}", v.clone());
v.gnome_sort(); // sorts `v` via gnome sort (with the trait implementation).
println!("sorted v: {:?}", v);
}
Without using the trait implementations:
use sort_it::prelude::*;
use rand::prelude::*;
fn main() {
let mut rng = rand::thread_rng();
let mut v = vec![1, 2, 3, 4, 5, 6, 7, 8, 9];
v.shuffle(&mut rng); // randomly shuffles `v`.
let s = merge_sort(v.clone()); // returns a sorted copy of `v` via merge sort (without the trait implementation).
println!("v: {:?}, s: {:?}", v, s);
}
Implemented sorting algorithms:
- Bogosort
- Bubble Sort
- Gnome Sort
- Insertion Sort
- Merge Sort
- Selection Sort
- Slowsort
- Stooge Sort
Have fun sorting things in different ways.
Dependencies
~310KB