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

1 Answer

0 votes
object MiddleOut {

  def main(args: Array[String]): Unit = {

    // Array to iterate
    val arr: Array[Int] = Array(0, 1, 2, 3, 4, 5, 6, 7)
    val n: Int = arr.length

    // Middle index for even-sized arrays
    val mid: Int = n / 2

    // Left starts before the middle, right starts at the middle
    var left: Int = mid - 1
    var right: Int = mid

    // Iterate outward from the middle
    while (left >= 0 || right < n) {

      if (right < n) {
        Console.out.print(s"${arr(right)} ")
        right += 1
      }

      if (left >= 0) {
        Console.out.print(s"${arr(left)} ")
        left -= 1
      }
    }
  }
}



/*
run:

4 3 5 2 6 1 7 0

*/

 



answered Jun 29 by avibootz

Related questions

...