Junior — Middle
İki sıralanmış diziyi nasıl birleştirip, öğelerin sırasını koruyarak tek bir dizi haline getirebilirsiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
İki sıralanmış diziyi tek sıralanmış diziye birleştirmek için, birleştirme algoritması kullanılabilir; bu, birleştirme sıralaması (merge sort) algoritmasında kullanılan yaklaşıma benzer. Fikir, her iki diziyi aynı anda geçmek, mevcut öğeleri karşılaştırmak ve en küçüğünü sonuç dizisine eklemektir.
Go dilinde örnek:
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++
}
}
// Kalan öğeleri ekle
result = append(result, a[i:]...)
result = append(result, b[j:]...)
return result
}
Bu yöntem, orijinal dizilerin boyutlarına bağlı olarak O(n + m) zamanında çalışır.