Junior — Middle
Эки сорттолгон массивди бириктирип, элементтердин тартибин сактап калуу үчүн кантип жасаса болот?
sobes.tech AI
AIден жооп
İki sıralanmış massivləri 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ə ən 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.