count_sort 0.1.1

O(n) sorting library for large datasets with small range of possible values
Documentation

Count Sort

A fast sorting library implementing count sort algorithm which is O(n + k). Designed for very quickly sorting large amounts of data with small range of possible values.

Currently only supports u8.

Goals

Add support for more types including i8, u16 and i16

Performance

length .sort() sort_u8
1 254.34 ns 2.9595 us
4 311.05 ns 3.4274 us
16 1.0484 us 6.0001 us
64 14.810 us 5.8646 us
256 111.79 us 10.524 us
1024 632.43 us 38.839 us
4096 3.1092 ms 82.978 us
16384 11.990 ms 303.39 us
65536 52.786 ms 945.06 us
262144 219.08 ms 4.2722 ms

Default Sort count_sort::sort_u8

Usage

Add dependency to Cargo.toml

[dependencies]
count_sort = "0.1.0"

And add the following to your code:

extern crate count_sort;

fn main () {
	let mut data: Vec<u8> = vec![252, 107, 81, 35, 185, 18, 175, 130, 37, 166];
	count_sort::sort_u8(&mut data);
	println!("{:?}", data);

}