3个版本 (1个稳定版)
1.0.0 | 2023年3月7日 |
---|---|
0.1.1 | 2023年1月9日 |
0.1.0 | 2023年1月7日 |
#1208 in 算法
每月469次下载
11KB
174 行
pack_it_up
pack_it_up 是一个简单的Rust库,实现了多种装箱算法
当前实现的算法
- 首次适配
- 首次适配递减
基本示例
use pack_it_up::offline::first_fit_decreasing::first_fit_decreasing;
struct MyItem {
some_content: i32,
size: usize,
}
impl Pack for MyItem {
fn size(&self) -> usize {
self.size
}
}
fn main() {
let my_items = vec![
MyItem { some_content: 1, size: 1, },
MyItem { some_content: 2, size: 2, },
MyItem { some_content: 3, size: 19, },
MyItem { some_content: 4, size: 17, },
MyItem { some_content: 5, size: 1, },
];
let mut bins = first_fit_decreasing(20, my_items);
}
上述结果将产生2个满载的箱子,一个大小为19和1,另一个大小为17、2和1。
计划功能
- 剩余算法
- 性能优化
- 如果您的结构体已经有一个名为size的字段,则可以简单地为Pack派生