@olya_097

Зачем Math.floor(array.length / 2)?

Помимо того что мы перебираем таким образом половину массива
https://codepen.io/anon/pen/arwRWr
  • Вопрос задан
  • 344 просмотра
Решения вопроса 2
JRK_DV
@JRK_DV
Рецепты https://codepen.io/jrkdv/full/LKLXdq
количество элементов: 5
если количество элементов нечётное, то делением на 2 получим дробную часть: 5 / 2 = 2.5

Цикл с вариантом без floor:
1 < 2.5 // <- true
2 < 2.5 // <- true
3 < 2.5 // <- false

Цикл с вариантом использования floor:
1 < 2 // <- true
2 < 2 // <- false
3 < 2 // <- false
Ответ написан
Комментировать
joeberetta
@joeberetta Куратор тега JavaScript
Читай: https://epdf.pub/google-for-dummies.html
//Данная функция реверсит массив методом, схожим на метод сортировки пузырьком
function reverseArrayInPlace(array) {
  //пока не дойдем до середины массива
  for (let i = 0; i < Math.floor(array.length / 2); i++) {
    i-тый элемент массива(идем с 1го элемента) записывает в временную переменную
    let old = array[i];
    в i-тый элемент массива записываем значение i-того элемента с конца массива (при i = 0, самый последний массив, и т.д.)
    array[i] = array[array.length - 1 - i];
    //в вышесказанный элемент массива с его конца записываем значение i-того элемента массива (который мы во временную переменную записали
    array[array.length - 1 - i] = old;
  }
  //в итоге мы за O(n/2) ходов реверснули массив и возвращаем его
  return array;
}

let arrayValue = [1, 2, 3, 4, 5];
reverseArrayInPlace(arrayValue);
console.log(arrayValue);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы