1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
//! Varified
use cargo_snippet::snippet;
use rand::{thread_rng, Rng};

#[snippet]
pub fn shuffle<T>(v: &mut Vec<T>) {
    for i in (1..v.len()).rev() {
        v.swap(thread_rng().gen_range(0, i), i);
    }
}

#[test]
fn test_shuffle() {
    let mut v = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    shuffle(&mut v);
    println!("{:?}", v);
}