Как только вы поймете, что JavaScript уже не может быть более странным, вы откроете для себя мир алгоритмов!

процесс или набор правил, которым необходимо следовать при вычислениях или других операциях по решению задач, особенно с помощью компьютера. - Словарь

В терминах программирования алгоритм часто представляет собой функции, на которые может ссылаться более крупная программа. Эти функции могут иметь простые операции, такие как сложение, вычитание и умножение, а также сложные операции, такие как найти наибольшее целое число и вернуть это целое число в новом массиве, умноженном на себя! Звучит безумно, верно!? Что ж, иногда алгоритмы могут быть немного ошеломляющими, чем они сложнее!

Несколько советов, которые я вынес из практики нескольких простых алгоритмов:

  • Прочитайте материал внимательно, до конца и несколько раз! Нет ничего хуже, чем бегло просмотреть проблему и подумать, что вы ее «разобрались», только чтобы понять, что вы неверно истолковали то, что от вас требуется!
  • Псевдокодируйте проблему, прежде чем кодировать ее! Я сделал много ошибок, не делая этого, потому что я прочитал задачу, и хотя «это кажется мне достаточно прямым, чтобы я мог написать код», только для того, чтобы оказаться неправым! Всегда записывайте свой мыслительный процесс, прежде чем вставлять слова в код!
  • Google — ваш лучший друг! Да, верно! Handy Dandy google всегда готов помочь вам! Не для того, чтобы искать решение, а чтобы помочь вам найти лучшую альтернативу решению проблемы! Я имею в виду, что в случае, если алгоритм говорит «выполнить эту операцию, но не использовать этот встроенный метод», ну, если этот встроенный метод был вашей первой первоначальной мыслью, тогда ты уже чувствуешь себя побежденным! Кроме того, всегда есть разные способы решить проблему без встроенного метода. Вам просто нужно погуглить!

Вот пример простого алгоритма, который я сделал несколько месяцев назад, на первых этапах обучения программированию:

Напишите функцию с именем min, которая принимает массив чисел и возвращает наименьшее значение.

Обратите внимание на встроенную функцию Math.min()!

outcomes:
min([5, 1, 4, 7, 1, 2]); // 1 
min([-1, 6, 3, 2.2, -10, -4]); // -10
function min(arr){
  //can use first element as default 'minimum'
 let minimum = arr[0];
 //then if we encounter a smaller element in the rest of the array,
  //   replace the value. Note we can start our loop at index 1
 for (var i = 1; i < arr.length; i++){
   //difference  here is if our arr[i] is less than the minimum variable, we assign minimum to that value
   if(arr[i] < minimum){
     minimum = arr[i];
   }
 }
 return minimum;
}
min([22, 44, 3, 5,77]) // => 3

Разобьем это на части:

  • Сначала мы создали нашу функцию, которая принимает параметр массива
  • Затем мы определяем минимальную переменную и присваиваем ее массиву по первому индексу (который также равен 0, программный код начинается с 0).
  • Затем мы используем for loop для циклического просмотра нашего массива чисел. Примечание: мы не ограничиваемся использованием цикла for для просмотра всего массива.
  • Наше условие: если массив с индексом [i] arr[i] меньше нашей минимальной переменной, мы хотим, чтобы это целое число было нашей новой переменной!
  • Наконец, мы должны вернуть минимальную переменную.

Алгоритм предоставлен Школой ритмов