Sobes.tech
Junior — Middle

¿Cómo se pueden fusionar dos arreglos ordenados en uno solo, manteniendo el orden de los elementos?

sobes.tech AI

Respuesta de la IA

Para fusionar dos matrices ordenadas en una sola ordenada, se puede utilizar un algoritmo de fusión similar al que se aplica en la ordenación por mezcla (merge sort). La idea es recorrer simultáneamente ambos arreglos, comparando los elementos actuales, y agregar el menor de ellos al arreglo resultante.

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++
        }
    }

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

    return result
}

Este método funciona en tiempo O(n + m), donde n y m son los tamaños de los arreglos originales.