How to calculate the median of a matrix in Kotlin

1 Answer

0 votes
fun findMedianUnsortedMatrix(matrix: Array<IntArray>): Double {
    val elements = mutableListOf<Int>()

    // Flatten the matrix
    for (row in matrix) {
        for (value in row) {
            elements.add(value)
        }
    }

    // Sort the elements
    elements.sort()

    // Calculate median
    val n = elements.size
    return if (n % 2 == 1) {
        // Odd number of elements: return middle element
        elements[n / 2].toDouble()
    } else {
        // Even number of elements: return average of two middle elements
        (elements[n / 2 - 1] + elements[n / 2]) / 2.0
    }
}

fun main() {
    val matrix = arrayOf(
        intArrayOf(5, 8, 9, 10),
        intArrayOf(1, 4, 6, 13),
        intArrayOf(7, 3, 0, 18),
        intArrayOf(6, 8, 9, 20)
    )

    val median = findMedianUnsortedMatrix(matrix)
    println("Median of the matrix is: %.1f".format(median))
}


/*
run:

Median of the matrix is: 7.5

*/

 



answered Oct 6, 2025 by avibootz
...