Junior — Middle
Ikki tartiblangan massivni qanday qilib birlashtirish mumkin, elementlarning tartibini saqlab qolgan holda?
sobes.tech AI
AIdan javob
Ikki tartiblangan massivni birlashtirish uchun, birlashtirish algoritmi, merge sortda qo'llaniladigan algoritmga o'xshash bo'lishi mumkin. G'oya shundan iboratki, ikkala massivni bir vaqtning o'zida o'tib, hozirgi elementlarni solishtirish va eng kichik bo'lganini natijaviy massivga 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 metod, original massivlarning o'lchamlariga qarab, O(n + m) vaqt ichida ishlaydi.