#排序 #数组 #向量 #插入排序 #可索引

nightly csinsertion_sort

可索引集合的插入排序实现

2个版本

0.1.3 2024年2月18日
0.1.1 2024年2月16日
0.1.0 2024年2月16日

2531算法

Download history 36/week @ 2024-04-02

每月76 次下载

MIT 协议

5KB
55

csinsertion_sort

在向量上实现的插入排序算法。

使用此创建来向Vec数据类型添加insertion_sortinsertion_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=1b==5时返回true,以确保5位于1的左侧。

为方便起见,提供了ascdesc函数。

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)

无运行时依赖