Я не спрашиваю, должен ли я использовать рекурсию или итерацию, или что быстрее между ними.Я пытался понять, сколько времени занимает итерация и рекурсия, и я обнаружил интересную закономерность в отношении времени, затрачиваемого обоими, и то, что когда-либо вверху файла занимало больше времени, чем другое.
Например: если я пишу для цикла в начале, это займет больше времени, чем рекурсия и наоборот.Разница между временем, затрачиваемым на оба процесса, существенно огромна примерно от 30 до 40 раз.
Мои вопросы: -
- Это порядок циклаа рекурсия имеет значение?
- Есть ли что-то, связанное с печатью?
- Что может быть причиной такого поведения?
Ниже приведен код, который я имею в том же файле, иЯзык, который я использую, это scala?
def count(x: Int): Unit = {
if (x <= 1000) {
print(s"$x ")
count(x + 1)
}
}
val t3 = System.currentTimeMillis()
count(1)
val t4 = System.currentTimeMillis()
println(s"\ntime taken by the recursion look = ${t4 - t3} mili second")
var c = 1
val t1 = System.currentTimeMillis()
while(c <= 1000)
{
print(s"$c ")
c+=1
}
val t2 = System.currentTimeMillis()
println(s"\ntime taken by the while loop = ${t2 - t1} mili second")
В этой ситуации время, необходимое для рекурсии и цикла while, составляет 986 мс, 20 мс соответственно.
Когда я переключаю положение цикла и рекурсии, что означаетпервый цикл, затем рекурсия, время, затрачиваемое на рекурсию, и время цикла равны 1,69 с и 28 мс соответственно.
Edit 1: Я могу видеть то же поведение с bufferWriter, если код рекурсии находится наТоп.Но не тот случай, когда рекурсия находится ниже цикла.Когда рекурсия находится ниже цикла, она занимает почти то же время с разницей от 2 до 3 мс.