Sobes.tech
Middle — Senior

¿Cómo implementar la fusión de dos matrices ordenadas en una sola matriz ordenada?

sobes.tech AI

Respuesta de la IA

Para fusionar dos matrices ordenadas en una sola matriz ordenada, se puede utilizar un algoritmo de fusión similar al que se aplica en la ordenación por mezcla (merge sort).

Idea:

  • Recorrer ambas matrices con dos índices.
  • En cada paso, comparar los elementos actuales y agregar el menor a la matriz resultante.
  • Cuando una de las matrices termine, agregar los elementos restantes de la otra matriz.

Ejemplo en Go:

func mergeSortedArrays(a, b []int) []int {
    result := make([]int, 0, len(a)+len(b))
    i, j := 0, 0

    for i < len(a) && j < len(b) {
        if a[i] < b[j] {
            result = append(result, a[i])
            i++
        } else {
            result = append(result, b[j])
            j++
        }
    }

    // Agregar los elementos restantes
    result = append(result, a[i:]...)
    result = append(result, b[j:]...)

    return result
}

Este algoritmo funciona en tiempo O(n + m), donde n y m son los tamaños de las matrices de entrada.