Что такое алгоритм? - Работа алгоритмов с примерами

Содержание:

Anonim

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

Это последовательность правил / инструкций, которые обрисованы в общих чертах, прежде чем подходить к решению какой-либо конкретной проблемы, как гарантия решения проблемы. Например, возьмем пример железнодорожных ворот.
Алгоритм должен:

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

Источник изображения: d262ilb51hltx0.cloudfront.net/

Понимание алгоритма

Источник изображения : goo.gl/images/u76bFe

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

  • Поезд прибывает
  • Поезд не прибывает

Результат первого результата передается действию, в котором он советует закрыть ворота, в то время как результат второго результата снова подвергается проверке путем отправки его в исходное утверждение. Кроме того, результат действия, которое было результатом первого условия, подвергается испытанию, чтобы проверить, был ли поезд полностью покинут. Если ответ «да», ворота открываются, а если он отрицательный, то ворота остаются закрытыми. Мы будем больше обсуждать это и работать со следующими темами (Подмножества / Строительные блоки и работа Алгоритма)

Как Алгоритм облегчает работу?

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

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

Лучшие компании по разработке алгоритмов

Создание отличного продукта требует действительно хорошего дизайна, хотя мы не можем сравнить алгоритм для двух разных задач, поэтому мы можем перечислить названия компаний, которые поставляли отличные продукты в этот мир на протяжении 21- го века:

  • DeepMind
  • Baidu
  • Nvidia
  • CloudWalk
  • SenseTime
  • Google
  • facebook
  • Darktrace
  • кембрийский
  • IBM
  • OpenAI
  • ByteDance
  • CrowdStrike
  • Зебра Медицинское Видение
  • Вавилон
  • Intel
  • Флатирон Здоровье
  • Подтверждают
  • Выскочка
  • Элемент ИИ
  • CloudMinds
  • DataRobot
  • Анки
  • Zymergen
  • UBTECH

Источник: алгоритмаxlab.com/

Подмножества / Строительные Блоки и работа Алгоритма

Все эти годы было доказано, что алгоритм может быть разработан только из трех строительных блоков:

  • Последовательность
  • выбор
  • итерация


Источник изображения : https://goo.gl/

Последовательность - это набор инструкций, которым необходимо следовать, чтобы решить проблему, и инструкции должны выполняться по порядку.

Примеры

1. Сложение двух чисел

Шаг 1: Старт
Шаг 2: Получить два числа в качестве входных данных и сохранить в переменной как a и b
Шаг 3: Добавьте число a & b и сохраните в переменной c
Шаг 4: Распечатать c
Шаг 5: Стоп.

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

2. Найдите самый большой среди 2-х номеров

Шаг 1: Старт
Шаг 2: Получить два числа в качестве входных данных и сохранить в переменной как a и b
Шаг 3: Если a больше, чем b, то
Шаг 4: Печать большая
Шаг 5: еще
Шаг 6: Печать b большая
Шаг 7: Стоп

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

3. Если мы хотим вычислить факториал числа

Шаг 1 : Старт
Шаг 2 : Объявите переменные n, factorial и i
Шаг 3 : Инициализируйте переменные, т.е. factorialß1 и iß1
Шаг 4: Считайте значения n
Шаг 5: повторяйте шаги до n итераций
факториал <- факториал * я
я <- я + 1
Шаг 6: Показать факториал
Шаг 7: Стоп

Что вы можете сделать с алгоритмом?

Это функция или ряд функций, которые решают проблему. Мы можем использовать алгоритм для решения как самой простой проблемы, так и некоторых самых сложных в мире. Мы решаем, что он является оптимальным с помощью «временной сложности». Проще говоря, временная сложность - это способ описания времени выполнения любого данного алгоритма. Существует минимальное время выполнения (называемое маленьким «O»), среднее время выполнения и наихудшее время выполнения O (N) (также известное как большое «O»). Специалистам по компьютерам и разработчикам программного обеспечения нравится думать об алгоритмах, потому что они заинтересованы в оценке и создании коллекций лучших практик, чтобы им не приходилось начинать с нуля каждый случай аналогичного класса проблем. Ниже приведен пример различных временных сложностей, которые можно получить при решении конкретной проблемы. Это также означает, что может быть несколько решений для одной проблемы, но нам нужно выбрать наиболее оптимальный, рассчитав временные сложности алгоритмов. На собеседованиях вас попросят решить проблему, и, кроме того, вас попросят оптимизировать ее, то есть сократить время работы вашего алгоритма. Например, вы могли бы написать код с 2 циклами «for» (итерация), но возможно, что эту задачу можно выполнить, просто используя один цикл «for» (итерация), но вы не дошли до этого решения еще и нужно разобраться побольше!

Источник изображения: https://goo.gl/

Преимущества алгоритма

  1. Это пошаговое представление решения любой данной проблемы, которое облегчает понимание.
  2. Он использует определенную процедуру.
  3. Он не зависит от какого-либо языка программирования, поэтому его легко понять даже без знания программирования.
  4. Каждый шаг имеет свою логическую последовательность, поэтому его легко отлаживать.
  5. Используя алгоритм, проблема разбивается на более мелкие части или шаги, следовательно, программисту легче преобразовать ее в реальную программу

Требуемые навыки

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

  1. Компьютеры - узнайте о массивах, связанных списках, двоичных деревьях, хеш-таблицах, графиках, стеках, очередях, кучах и других фундаментальных структурах данных.
  2. Математика. Узнайте больше о теории множеств, машинах конечных состояний, регулярных выражениях, умножении матриц, побитовых операциях, решении линейных уравнений и других важных понятиях, таких как перестановки, комбинации, принцип Голубого отверстия.
  3. Big-O & Runtime - узнайте, что такое Big-O и как анализировать время работы алгоритмов.

Почему мы должны использовать и почему нам нужен алгоритм?

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

Например, представьте, что перед нами два кубика Рубика. Один из них вам разрешено использовать алгоритмы (например, сколько раз или в каком направлении повернуть лицо), а другой вы должны найти свой собственный путь. Какой путь будет быстрее? Конечно, это будет первым.

Давайте возьмем интересный пример:

Допустим, у нас есть массив элементов, и мы хотели бы отсортировать их в порядке возрастания. Теперь есть другой алгоритмический подход к этому. Мы сосредоточимся на временной сложности 2 из них: сортировка вставкой и сортировка слиянием

Сортировка вставкой: сортировка вставкой - это простая сортировка.
(Сложность времени O (N 2).)

Сортировка слиянием: В сортировке слиянием мы сортируем элементы, используя метод «Разделить и завоевать».
Временная сложность составляет O (N log N).

Это может повлиять на вас, если вы не будете следовать и не будете проводить анализ.

Область применения алгоритма

Изучая и осваивая алгоритм, вы узнаете искусство «решения проблем». Благодаря хорошей практике и постоянному обучению вы сможете решать сложные проблемы. Это основа для разработки некоторой части программного обеспечения или кода, поскольку время выполнения кода является одним из наиболее важных факторов, определяющих выполнение конкретной задачи. Технические гиганты мира, такие как Google и Facebook, оценивают ваши навыки решения проблем, и в ходе интервью большинство вопросов касаются разработки алгоритмов и решения проблем. Вам будет предложено разработать алгоритм и оптимизировать его до максимально возможного времени сложности.

Несколько баллов:

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

Кто является подходящей аудиторией для изучения технологий алгоритмов?

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

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

Как алгоритм поможет вам в карьерном росте?

Разработка и анализ алгоритма - это не роль (специфическая), а часть вашей работы, и эта роль играет жизненно важную роль в разработке кода. Если вы разрабатываете хороший алгоритм, вы будете писать хорошие коды с оптимальным решением, и в конечном итоге ваш конечный продукт, который доставляется клиентам, превосходит все ожидания. Поэтому, если вы проектируете и / или разрабатываете программное обеспечение, то знание и опыт работы со структурами данных и алгоритмами имеют важное значение. Допустим, вы работаете над продуктом для разработки программного обеспечения, и его ответ должен быть тщательно протестирован (конечно, вы хотели бы проверить время выполнения процесса перед передачей кода группе тестирования программного обеспечения), и это не то, что вы могли бы Угадайте почти точно заранее, но вы должны использовать анализ алгоритма, чтобы вычислить сложность времени.

Вывод

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

Рекомендуемые статьи

Это было руководство к тому, что такое алгоритмы. Здесь мы обсудили работу алгоритмов с примерами и ее различными аспектами. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Что такое сервер Tableau?
  2. Руководство по аналитике больших данных
  3. Что такое SQL Developer?
  4. Что такое Informatica