Девайсы алгоритмическая задача с тех скрининга На вход подаются 2 отсортированных по возрастанию массива типа Int. Необходимо написать функцию merge, которая возвращает результат слияния данных массивов в один отсортированный
например, merge([1, 3, 3], [0, 2, 5]) -> [0, 1, 2, 3, 3, 5]
Массивы допускаются быть:
— различной длины [1] [1, 2, 3] — пустые [] — с повторениями […, 2, 2, …]
func merge(_ a: [Int], _ b: [Int]) -> [Int] {
var i = 0
var j = 0
var results = [Int]()
results.reserveCapacity(a.count + b.count)
while i < a.count && j < b.count {
if a[i] < b[j] {
results.append(a[i])
i += 1
} else {
results.append(b[j])
j += 1
}
}
while i < a.count {
results.append(a[i])
i += 1
}
while j < b.count {
results.append(b[j])
j += 1
}
return results
}