Junior — Middle
Hoe kunnen twee gesorteerde arrays worden samengevoegd tot één, terwijl de volgorde van de elementen behouden blijft?
sobes.tech AI
Antwoord van AI
Om twee gesorteerde arrays samen te voegen tot één gesorteerde array, kan een merge-algoritme worden gebruikt dat vergelijkbaar is met dat in merge sort. Het idee is om beide arrays gelijktijdig te doorlopen, de huidige elementen te vergelijken en het kleinste ervan aan de resulterende array toe te voegen.
Voorbeeld in Go:
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++
}
}
// Voeg de resterende elementen toe
result = append(result, a[i:]...)
result = append(result, b[j:]...)
return result
}
Deze methode werkt in O(n + m) tijd, waarbij n en m de groottes van de oorspronkelijke arrays zijn.