Этот вопрос был задан в другом месте, но я просто хотел проверить, что я сделал это применимо, учитывая RSpec обстоятельства:Комбинирование и сортировки 2 массивов
Написать метод, который принимает два отсортированных массива и производит отсортированные массив, который объединяет оба.
Ограничения:
- Не называйте сортировать в любом месте.
- Ни в коем случае не изменяйте два массива, данные вам.
- Не обходите (2) путем клонирования или дублирования двух массивов, только для изменения копий.
Подсказка: вам, вероятно, понадобятся индексы в двух массивах.
combine_arrays([1, 3, 5], [2, 4, 6]) == [1, 2, 3, 4, 5, 6]
Можете ли вы объединить два массива в один массив, а затем запустить типичный вид пузыря?
def combine_arrays(arr1,arr2)
final = arr1 + arr2
sorted = true
while sorted do
sorted = false
(0..final.length - 2).each do |x|
if final[x] > final[x+1]
final[x], final[x+1] = final[x+1], final[x]
sorted = true
end
end
end
final
end
p combine_arrays([1,3,5],[2,4,6]) => [1, 2, 3, 4, 5, 6]
Мне нравится алгоритм, но ваш синтаксис Ruby выглядит странно ... – spickermann
Наверное, потому что я не говорю Ruby - его онлайн-преобразование из VB –
@DaleM Я немного смущен. Я все еще изучаю Ruby, но ваш код не так ясен. Если можете, не могли бы вы объяснить? особенно ваш retval = ... – Jgoo83