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.