-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
Copy pathSelection_sort.rs
63 lines (53 loc) · 2.52 KB
/
Selection_sort.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// Rust program for Selection Sort
use std::io;
fn main() {
println!(" Enter number of elements to be entered in the array ");
let mut size = String::new();
io::stdin().read_line(&mut size).expect("failed to read input.");
let size: usize = size.trim_end().parse().expect("invalid input");
let mut vector: Vec<usize> = Vec::with_capacity(size as usize);
println!("Enter elements of array ");
let mut index = 0;
// Enter values into vector
while index < size {
index += 1;
// Note: Rust takes spaces as non-intergral value
let mut temp_arr = String::new();
io::stdin().read_line(&mut temp_arr).expect("failed to read input.");
let temp_arr: usize = temp_arr.trim_end().parse().expect("invalid input");
vector.push(temp_arr);
}
for index in 0..size - 1 {
let mut minimum = index;
let mut j = index + 1;
while j < size {
if vector[j] < vector[minimum] {
minimum = j;
j += 1;
}
// Swapping the smallest number in vector with the indexth location number
let temp = vector[minimum];
vector[minimum] = vector[index];
vector[index] = temp;
}
}
println!("Sorted array is ");
for index in 0..size {
println!("{:?}",vector[index]);
}
}
/*
TEST CASE
INPUT
Enter number of elements to be entered in the array
3
Enter elements of array
3
2
1
OUTPUT
Sorted array is
1
2
3
*/