Sobes.tech
Junior — Middle

Come si possono unire due array ordinati in uno, mantenendo l'ordine degli elementi?

sobes.tech AI

Risposta dell'AI

Per unire due array ordinati in uno unico ordinato, si può utilizzare un algoritmo di fusione simile a quello usato nel merge sort. L'idea è di attraversare simultaneamente entrambi gli array, confrontando gli elementi correnti e aggiungendo quello più piccolo all'array risultante.

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

    // Aggiungi gli elementi rimanenti
    result = append(result, a[i:]...)
    result = append(result, b[j:]...)

    return result
}

Questo metodo funziona in tempo O(n + m), dove n e m sono le dimensioni degli array originali.