Sobes.tech
Junior — Middle

İki sıralanmış diziyi nasıl birleştirip, öğelerin sırasını koruyarak tek bir dizi haline getirebilirsiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

İki sıralanmış diziyi tek sıralanmış diziye birleştirmek için, birleştirme algoritması kullanılabilir; bu, birleştirme sıralaması (merge sort) algoritmasında kullanılan yaklaşıma benzer. Fikir, her iki diziyi aynı anda geçmek, mevcut öğeleri karşılaştırmak ve en küçüğünü sonuç dizisine eklemektir.

Go dilinde örnek:

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

    // Kalan öğeleri ekle
    result = append(result, a[i:]...)
    result = append(result, b[j:]...)

    return result
}

Bu yöntem, orijinal dizilerin boyutlarına bağlı olarak O(n + m) zamanında çalışır.