Sobes.tech
Junior — Middle

İki sıralanmış massiv necə birləşdirilərək, elementlərin sırasını qoruyaraq birləşdirilə bilər?

sobes.tech Süni İntellekt

AI-dan cavab

İki sıralanmış massiv birləşdirmək üçün, merge sortda istifadə olunan merge algoritmına bənzər bir algoritmdən istifadə etmək olar. Fikir, hər iki massivə eyni vaxtda keçmək, cari elementləri müqayisə etmək və kiçik olanı nəticə massivinə əlavə etməkdir.

Go dilində nümunə:

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

    // Qalan elementləri əlavə et
    result = append(result, a[i:]...)
    result = append(result, b[j:]...)

    return result
}

Bu metod, orijinal massivlərin ölçülərinə görə, O(n + m) vaxtda işləyir.