Sobes.tech
Junior — Middle

Чӣ тавр метавон ду массиви ба тартиб даровардашударо ба якҷоягӣ кард, бо нигоҳ доштани тартиби элементҳо?

sobes.tech AI

Ҷавоб аз AI

Барои якҷоя кардани ду массиви сартарошуда дар як массиви сартарошуда, метавон аз алгоритми ҳамҷоясозӣ, монанди он, ки дар сортировкаи ҳамҷоя (merge sort) истифода мешавад, истифода кард. Ҳикмат ин аст, ки ҳарду массивро ҳамзамон гузаред, элементҳои ҳозираро муқоиса кунед ва хурдтарини онҳоро ба массиви натиҷа илова кунед.

Масалан дар 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++
        }
    }

    // Илова кардани элементҳои боқимонда
    result = append(result, a[i:]...)
    result = append(result, b[j:]...)

    return result
}

Ин усул дар вақти O(n + m) кор мекунад, ки n ва m андозаи массивҳои аслӣ мебошанд.