How to merge two sorted arrays in Swift

1 Answer

0 votes
import Foundation

func mergeArrays(_ arr1: [Int], _ arr2: [Int]) -> [Int] {
    var merged: [Int] = []
    merged.reserveCapacity(arr1.count + arr2.count) // efficient preallocation
    var i = 0
    var j = 0

    // Merge while both arrays have elements
    while i < arr1.count && j < arr2.count {
        if arr1[i] < arr2[j] {
            merged.append(arr1[i])
            i += 1
        } else {
            merged.append(arr2[j])
            j += 1
        }
    }

    // Append remaining elements
    if i < arr1.count {
        merged.append(contentsOf: arr1[i...])
    }
    if j < arr2.count {
        merged.append(contentsOf: arr2[j...])
    }

    return merged
}


let arr1 = [1, 3, 5, 7, 8, 9, 9]
let arr2 = [2, 3, 4, 5, 6, 9]

let result = mergeArrays(arr1, arr2)
print(result)




/*
run:

[1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 9, 9]

*/

 



answered Nov 30, 2025 by avibootz
edited Dec 1, 2025 by avibootz

Related questions

...