Sobes.tech
Middle — Senior

Ikki tartiblangan massivni bir tartiblangan massivga birlashtirish qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

Ikki tartiblangan massivlarni birlashtirish uchun, birlashtirish algoritmi, merge sort (birlashtirish tartibi)da qo'llaniladigan bilan o'xshash bo'lishi mumkin.

G'oya:

  • Har ikkala massivni ikki indeks bilan yurish.
  • Har bir bosqichda, hozirgi elementlarni solishtirish va kichikroq bo'lganini natijaviy massivga qo'shish.
  • Bir massiv tugagach, qolgan elementlarni ikkinchi massivdan qo'shish.

Go tilida misol:

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

    // Qolgan elementlarni qo'shish
    result = append(result, a[i:]...)
    result = append(result, b[j:]...)

    return result
}

Ushbu algoritm, kirish massivlarining o'lchamlariga bog'liq holda, O(n + m) vaqt ichida ishlaydi.