dsalgo 0.2.6

A package for Datastructures and Algorithms.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pub fn unique<T: Ord + Clone>(a: &Vec<T>) -> Vec<T> {
    let mut v = a.to_vec();
    v.sort();
    v.dedup();
    v
}

pub fn compress_array<T: Ord + Clone>(a: &Vec<T>) -> (Vec<usize>, Vec<T>) {
    let v = unique(a);
    let a = a
        .iter()
        .map(|x| v.binary_search(x).unwrap())
        .collect::<Vec<_>>();
    (a, v)
}