Руководство для начинающих по алгоритмам в JavaScript

В то время как слово может показаться несколько чуждым и даже пугающим для некоторых, если вы просто мочите ноги. Но не волнуйтесь, мы используем алгоритмы, чтобы помочь себе и даже используем их в нашей повседневной жизни, даже не подозревая об этом. Я имею в виду не устройства или приложения, к которым вы подключаетесь ежедневно, а вас как личность. Давайте прыгнем прямо в него.

Что такое алгоритм?

Способ, которым меня учили лучше понимать алгоритмы, состоит в том, чтобы думать о них как о приготовлении сыра на гриле, и это не так уж далеко от истины. Согласно широкому определению Merriam-Webster, алгоритм — это «пошаговая процедура решения проблемы или достижения какой-либо цели». Может быть, что-то вроде рецепта приготовления сыра на гриле, чтобы вы могли насладиться этим липким совершенством. Даже не подозревая об этом, вы используете алгоритм, когда следуете рецепту, сортируете белье и даже одеваетесь.

В сфере разработки алгоритм точно такой же. Мы создаем функцию или метод, который будет выполнять необходимые шаги для достижения наших целей. Этими алгоритмами могут быть поиск наименьшего слова/слов в наборе данных, сортировка наборов данных по алфавиту или числовому, удаление нечетных/четных чисел, содержит ли строка допустимые скобки, содержит ли строка действительный номер телефона; ничего действительно. Давайте рассмотрим несколько примеров различных алгоритмов, разбив их на части.

Сортировка белья

Вернемся к примеру с сортировкой белья. Когда я лично стираю белье, я часто делаю две стопки. Один для цветного и один для белого, так как раньше у меня была неудача, когда цвет просачивался в белое при смешанной загрузке. Для начала у нас будет вся наша грязная одежда.

Затем нам нужно будет объявить нашу функцию, метко названную сортировкой белья, которая принимает массив в качестве аргумента. Поскольку мы знаем, что собираемся сделать две стопки или иметь две загрузки, мы создадим пустой массив для загрузки цвета и пустой массив для загрузки белого, вот так.

Наша функция сортировки белья сначала должна пройтись по каждому предмету одежды в нашей куче грязного белья. Пока он смотрит на каждый предмет одежды, мы можем определить, с какой нагрузкой он будет находиться. Я бы предпочел написать свою функцию как таковую.

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

Возврат

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

Найти самое короткое слово и его длину

Теперь давайте рассмотрим пример, который я лично получил в рамках технического интервью. Этот вопрос может показаться не слишком сложным, но показывает, что вы можете преобразовывать данные, когда это необходимо, а также умеете работать с различными типами данных. В этом примере нам будет предоставлена ​​строка, из которой нам нужно будет извлечь это самое короткое слово и указать его длину. Давайте начнем с объявления нашей функции, найдите короткое слово. Нам также нужно будет превратить эту строку в массив.

Разделив строку по каждому пробелу, мы переназначили строку как массив всех предоставленных слов. Теперь, когда наш тип данных изменился со строки на массив строк, теперь мы можем перебирать каждое слово в цикле. Но прежде чем мы начнем наш цикл, давайте сначала установим наше самое короткое слово в первое слово в массиве.

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

Затем мы также можем настроить наш возврат так, как нам хотелось бы, но мы должны обязательно включить самое короткое слово, а также его длину.

Возврат

Опять же, это может показаться простой функцией, выполняющей простую задачу, но опять же мы создали алгоритм. Тестовые строки в этом случае представляют собой короткие предложения, и это можно было бы сделать, просто прочитав их. Но представьте, что вы получаете строки длиной в несколько абзацев или даже страниц, и вам приходится делать это целый день. Это заняло бы много времени, если бы вы делали это вручную, и честно сожгли бы вас в процессе.

Мало того, что компьютер может производить эти вычисления за доли времени, они также не устают и не выгорают, и теоретически могут продолжаться вечно. Хотя я не пытаюсь сравнивать чей-либо умственный потенциал с вычислительной мощностью, мы создаем алгоритмы, которые помогают нам достигать наших целей. И хотя один алгоритм может показаться бессмысленным, несколько алгоритмов, работающих вместе в гармонии, помогают создавать ваши любимые приложения и их функции.

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

Если вы хотите просмотреть копию этих примеров, чтобы поиграть с ними для себя или просто для справки, вы можете найти ссылку на репозиторий GitHub здесь.