4 releases

Uses old Rust 2015

0.2.0 Feb 20, 2023
0.1.2 Mar 4, 2021
0.1.1 Feb 25, 2021
0.1.0 Feb 25, 2021

#251 in Algorithms

Download history 28269/week @ 2023-12-13 19263/week @ 2023-12-20 11272/week @ 2023-12-27 23317/week @ 2024-01-03 26345/week @ 2024-01-10 32462/week @ 2024-01-17 31726/week @ 2024-01-24 27329/week @ 2024-01-31 33015/week @ 2024-02-07 34886/week @ 2024-02-14 33812/week @ 2024-02-21 33151/week @ 2024-02-28 29719/week @ 2024-03-06 29323/week @ 2024-03-13 36287/week @ 2024-03-20 23439/week @ 2024-03-27

124,305 downloads per month
Used in 115 crates (3 directly)

MIT/Apache

14KB
222 lines

partial_sort

Build Status

partial_sort is Rust version of std::partial_sort

Usage

use partial_sort::PartialSort;

fn main() {
    let mut vec = vec![4, 4, 3, 3, 1, 1, 2, 2];
    vec.partial_sort(4, |a, b| a.cmp(b));
    println!("{:?}", vec);
}

Benches

First we compare what happens when sorting the entire vector (in Macbook pro M1Max):

partial sort 10000 limit 20                 time:   [5.2093 µs 5.2470 µs 5.2892 µs]
partial sort 10000 limit 200                time:   [15.742 µs 16.116 µs 16.645 µs]
partial sort 10000 limit 2000               time:   [117.99 µs 119.59 µs 121.32 µs]
partial sort 10000 limit 10000              time:   [281.40 µs 287.69 µs 295.43 µs]
stdsort 10000                               time:   [363.75 µs 366.93 µs 371.06 µs]
heapsort 10000                              time:   [253.89 µs 256.02 µs 258.35 µs]

partial reverse sort 10000 limit 20         time:   [5.7620 µs 6.0627 µs 6.5347 µs]
stdsort reverse 10000                       time:   [347.39 µs 355.88 µs 369.46 µs]

License

Licensed under either of

No runtime deps