Crates.io | sorting_networks |
lib.rs | sorting_networks |
version | 0.1.0 |
source | src |
created_at | 2018-03-11 16:29:19.865355 |
updated_at | 2018-03-11 16:29:19.865355 |
description | An implementation of sorting networks. |
homepage | https://github.com/regexident/sorting_networks |
repository | https://github.com/regexident/sorting_networks |
max_upload_size | |
id | 55009 |
size | 152,920 |
An implementation of sorting networks in Rust.
In computer science, comparator networks are abstract devices built up of a fixed number of "wires", carrying values, and comparator modules that connect pairs of wires, swapping the values on the wires if they are not in a desired order. Such networks are typically designed to perform sorting on fixed numbers of values, in which case they are called sorting networks. (Wikipedia)
sorting_network
provided implementations of Batcher's Odd-Even Merge-Sort for sequences of length 2
, 4
, 8
, 16
, 32
, 64
, 128
and 256
.
Example of SortingNetwork16
:
let mut items = vec![7, 6, 5, 4, 3, 2, 1, 0];
let network = SortingNetwork16::new();
network.sort(&mut items[..]);
assert_eq!(items, vec![0, 1, 2, 3, 4, 5, 6, 7]);
Please read CONTRIBUTING.md for details on our code of conduct,
and the process for submitting pull requests to us.
This project is licensed under the MPL-2.0 – see the LICENSE.md file for details.