У меня большой массив, и я хочу умножить каждый элемент массива на заданное число N . Я могу сделать это следующим образом
val arr = Array.fill(100000)(math.random)
val N = 5.0
val newArr = arr.map ( _ * N )
Так что это вернет мне новый массив, как я хочу. Другим способом может быть
def demo (arr :Array [Double] , value : Double ) : Array[Double] ={
var res : Array[Double] = Array()
if ( arr.length == 1 )
res = Array ( arr.head + value )
else
res = demo ( arr.slice(0, arr.length/2) , value ) ++ demo ( arr.slice ( arr.length / 2 , arr.length ) , value )
res
}
В моем случае у меня есть массив большего размера, и я должен выполнить эту операцию для тысяч итераций. Я хочу спросить, есть ли более быстрый способ получить тот же результат? Будет ли хвостовая рекурсия увеличивать скорость? Или любая другая техника?