How to merge two sorted arrays in Scala

1 Answer

0 votes
object MergeArrays {
  def mergeArrays(arr1: Seq[Int], arr2: Seq[Int]): Seq[Int] = {
    val merged = scala.collection.mutable.ListBuffer[Int]()
    var i = 0
    var j = 0

    // Merge while both sequences have elements
    while (i < arr1.length && j < arr2.length) {
      if (arr1(i) < arr2(j)) {
        merged += arr1(i)
        i += 1
      } else {
        merged += arr2(j)
        j += 1
      }
    }

    // Append remaining elements
    merged ++= arr1.drop(i)
    merged ++= arr2.drop(j)

    merged.toList
  }

  def main(args: Array[String]): Unit = {
    val arr1 = Seq(1, 3, 5, 7, 8, 9, 9)
    val arr2 = Seq(2, 3, 4, 5, 6, 9)

    val result = mergeArrays(arr1, arr2)
    println(result)
  }
}



/*
run:

List(1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 9, 9)

*/

 



answered Nov 30, 2025 by avibootz
...