8 个版本

0.2.2 2022年2月7日
0.2.1 2022年2月3日
0.1.4 2021年2月21日
0.1.2 2020年8月28日

算法 类别中排名 810

每月下载 22

MIT/Apache

54KB
1K SLoC

必须的 README

这个crate提供了各种不同的排序算法,包括直接在任何实现某些功能的 Vec 上实现,以及作为独立的函数。

示例

使用特质的实现

use sort_it::prelude::*;

fn main() {
    let mut v = vec![9, 8, 7, 6, 5, 4, 3, 2, 1];
    
    println!("original v: {:?}", v.clone()); 
    
    v.gnome_sort(); // sorts `v` via gnome sort (with the trait implementation).
    
    println!("sorted v: {:?}", v);
}

不使用特质的实现

use sort_it::prelude::*;
use rand::prelude::*;

fn main() {
    let mut rng = rand::thread_rng();
    
    let mut v = vec![1, 2, 3, 4, 5, 6, 7, 8, 9];

    v.shuffle(&mut rng); // randomly shuffles `v`.
    
    let s = merge_sort(v.clone()); // returns a sorted copy of `v` via merge sort (without the trait implementation).
    
    println!("v: {:?}, s: {:?}", v, s);
}

实现的排序算法

  • Bogosort
  • 冒泡排序
  • 龚排序
  • 插入排序
  • 归并排序
  • 选择排序
  • 慢速排序
  • Stooge 排序

享受以不同方式排序事物的乐趣。

依赖

~305KB