How to iterate an array from the middle outward (stepping left and right alternately) in Rust

1 Answer

0 votes
fn main() {
    // Array to iterate
    let arr: [i32; 8] = [0, 1, 2, 3, 4, 5, 6, 7];
    let n: usize = arr.len();

    // Middle index for even-sized arrays
    let mid: usize = n / 2;

    // Left starts before the middle, right starts at the middle
    let mut left: isize = mid as isize - 1;
    let mut right: usize = mid;

    // Iterate outward from the middle
    while left >= 0 || right < n {
        if right < n {
            print!("{} ", arr[right]);
            right += 1;
        }

        if left >= 0 {
            print!("{} ", arr[left as usize]);
            left -= 1;
        }
    }
}


/*
run:

4 3 5 2 6 1 7 0

*/

 



answered 6 days ago by avibootz

Related questions

...