How to merge two sorted lists in Kotlin

1 Answer

0 votes
fun mergeArrays(arr1: List<Int>, arr2: List<Int>): List<Int> {
    val merged = mutableListOf<Int>()
    var i = 0
    var j = 0

    // Merge while both lists have elements
    while (i < arr1.size && j < arr2.size) {
        if (arr1[i] < arr2[j]) {
            merged.add(arr1[i])
            i++
        } else {
            merged.add(arr2[j])
            j++
        }
    }

    // Append remaining elements
    merged.addAll(arr1.subList(i, arr1.size))
    merged.addAll(arr2.subList(j, arr2.size))

    return merged
}

fun main() {
    val arr1 = listOf(1, 3, 5, 7, 8, 9, 9)
    val arr2 = listOf(2, 3, 4, 5, 6, 9)

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



/*
run:

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

*/

 



answered Nov 30, 2025 by avibootz
...