1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2018年3月11日 |
---|
#6 在 #批处理
105KB
546 行
sorting_networks
概要
Rust 中排序网络实现。
动机
在计算机科学中,比较网络是由固定数量的“线”组成的抽象设备,这些线携带值,并且由比较模块连接成对,如果这些值不在期望的顺序中,则交换线上的值。这些网络通常设计用于对固定数量的值进行排序,在这种情况下,它们被称为排序网络。(维基百科)
sorting_network
提供了 Batcher 的奇偶归并排序 的实现,适用于长度为 2
、4
、8
、16
、32
、64
、128
和 256
的序列。
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]);
贡献
请阅读 CONTRIBUTING.md 了解我们的 行为准则,
以及向我们的提交拉取请求的过程。
许可证
本项目采用 MPL-2.0 许可证 – 请参阅 LICENSE.md 文件了解详细信息。