Какая реализация быстрее и почему - PullRequest
2 голосов
/ 04 февраля 2020

Я написал функцию, которая вычисляет это значение / формулу:

formula

, и у меня есть 2 реализации, и я не понимаю, почему реализация с 3 циклами работает быстрее чем реализация с if's?

Пожалуйста, объясните мне, почему это так?

Реализация If:

function res(p, square) {
  let res = 0
  let i = 1;
  let j = 1;
  let k = 1;


  label: for (;;) {
    res += (i ** 3 * j ** 2 * k)
    if (k < p) {
      k++
      continue label
    }
    if (j < p) {
      k = 1
      j++
      continue label
    }
    if (i < p) {
      k = 1
      j = 1;
      i++
      continue label
    }
    if (k == p && j == p && i == p) {
      return res
    }
  }
}

L oop реализация:

function res1(p) {
  let res = 0
  for (let i = 0; i <= p; i++) {
    for (let j = 0; j <= p; j++) {
      for (let k = 0; k <= p; k++) {
        res += (i ** 3 * j ** 2 * k)
      }
    }
  }
  return res
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...