2个版本
0.1.3 | 2024年2月18日 |
---|---|
0.1.1 | 2024年2月16日 |
0.1.0 |
|
2531 在 算法
每月76 次下载
5KB
55 行
csinsertion_sort
在向量上实现的插入排序算法。
使用此创建来向Vec数据类型添加insertion_sort
和insertion_sort_by
方法。
use csinsertion_sort::InsertionSort;
let mut input: Vec<u32> = vec![2, 1];
// this will sort items in ascending order
// using insertion sort algorithm
input.insertion_sort();
// input is now [1,2]
使用insertion_sort_by
来自定义比较项的方式。作为第二个参数传递一个形式为的函数
fn(a: &T, b: &T) -> bool;
此函数必须返回true
以指示值不在正确的顺序。例如,按降序排序一个u32
列表,by
参数可以是
fn desc(a: u32, b: u32) -> bool {
a < b
}
此示例在a=1
和b==5
时返回true
,以确保5
位于1
的左侧。
为方便起见,提供了asc
和desc
函数。
use csinsertion_sort::{InsertionSort, des};
let mut input: Vec<u32> = vec![1, 2];
// this will sort items in descending order
// using insertion sort algorithm
input.insertion_sort_by(desc);
// input is now [2,1]
调用insertion_sort
等同于调用insertion_sort_by(asc)