From 03e6f1ebf7898ef6bc320b0436530d3a68866336 Mon Sep 17 00:00:00 2001 From: Pagwin Date: Sun, 3 Nov 2024 16:28:01 -0500 Subject: [PATCH] rust version --- main.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 main.rs diff --git a/main.rs b/main.rs new file mode 100644 index 0000000..0bef4c8 --- /dev/null +++ b/main.rs @@ -0,0 +1,27 @@ +fn get_reversals_to_sort(arr: &[i32]) -> Vec { + let mut intermediate: Vec = arr.into(); + let mut ret: Vec = Vec::new(); + + for i in (2..=intermediate.len()).rev() { + let max = intermediate[0..i].iter().max().unwrap(); + let found = intermediate[0..i].iter().position(|e| e == max).unwrap(); + + let first_swap = found + 1; + let second_swap = i; + + if first_swap != second_swap { + if first_swap > 1 { + ret.push(first_swap); + intermediate[0..first_swap].reverse(); + } + ret.push(second_swap); + intermediate[0..second_swap].reverse(); + } + } + ret +} +pub fn main() { + let vals = [12, 13, 11, 14]; + let show = get_reversals_to_sort(&vals); + println!("{:?}", show); +}