noko_sort/
lib.rs

1
2pub fn sort_ascending(data: &str) -> Vec<i128> {
3    let mut splitdat: Vec<i128> = data
4        .split_whitespace()
5        .map(|s| s.parse().expect("Parse error"))
6        .collect();
7
8    let mut sorted_values = Vec::new();
9    let mut min_index;
10
11    while !splitdat.is_empty() {
12        min_index = 0;
13        for i in 1..splitdat.len() {
14            if splitdat[i] < splitdat[min_index] {
15                min_index = i;
16            }
17        }
18        sorted_values.push(splitdat.remove(min_index));
19    }
20    for (i, _val) in sorted_values.iter().enumerate() {
21        if i > 0 {
22            print!(" ");
23        }
24    }
25    return sorted_values;
26}
27
28pub fn sort_descending(data: &str) -> Vec<i128> {
29    let mut splitdat: Vec<i128> = data
30        .split_whitespace()
31        .map(|s| s.parse().expect("Parse error"))
32        .collect();
33
34    let mut sorted_values = Vec::new();
35    let mut min_index;
36
37    while !splitdat.is_empty() {
38        min_index = 0;
39        for i in 1..splitdat.len() {
40            if splitdat[i] > splitdat[min_index] {
41                min_index = i;
42            }
43        }
44        sorted_values.push(splitdat.remove(min_index));
45    }
46    for (i, _val) in sorted_values.iter().enumerate() {
47        if i > 0 {
48            print!(" ");
49        }
50    }
51    return sorted_values;
52}