Рубрики
Без рубрики

Что такое алгоритмы и почему они важны?

Алгоритмы являются фундаментальными для компьютерных наук и программирования Python. Алгоритм – это набор пошаговых процедур для выполнения определенной задачи.

Автор оригинала: Robin Andrews.

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

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

  • Разогреть печь
  • Соберите ингредиенты
  • Измерьте ингредиенты
  • Смешайте вместе ингредиенты, чтобы сделать тесто
  • Смачивать
  • Налить тесто в кастрюлю
  • Поставить кастрюлю в духовке
  • Установите таймер
  • Когда таймер уходит, возьмите кастрюлю из духовки
  • Наслаждаться!

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

Типы алгоритмов

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

  • Делить и завоевывать алгоритмы – разделите проблему на более мелкие субпроблемы одного типа; Решите эти меньшие проблемы и объедините эти решения для решения оригинальной проблемы.
  • Алгоритмы грубой силы – попробуйте все возможные решения, пока не будет найден удовлетворительное решение.
  • Рандомизированные алгоритмы – используйте случайное число, по меньшей мере, один раз во время вычисления, чтобы найти решение проблемы.
  • Жадные алгоритмы – найдите оптимальное решение на местном уровне с намерением найти оптимальное решение для всей проблемы.
  • Рекурсивные алгоритмы – решайте самую низкую и простую версию проблемы, чтобы затем решить все более большие версии проблемы до тех пор, пока не будет найдено решение на исходную проблему.
  • Алгоритмы обратной передачи – разделите проблему в подблемы, каждый из которых можно попытаться решить; Однако, если желаемое решение не достигнуто, двигайтесь назад в задаче, пока не будет обнаружена путь, который перемещает его вперед.
  • Динамические алгоритмы программирования – сломайте сложную проблему в коллекцию более простых подгруппы, затем решают каждый из этих подпроблем только один раз, сохраняя их решение для будущего использования вместо вновь вычисления их решений.

Пример алгоритма – решающий кубик рубика

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

Каждая из шести лиц куба Rubik может быть представлена первой буквой их имени:

  • U – вверх
  • D – вниз
  • L – влево
  • R – право
  • F – фронт
  • B – обратно

Каждое лицо можно превратить тремя разными способами/направлениями. Используя U в качестве примера, они представлены как:

  • U – четверть по часовой стрелке верхней части лица
  • U ‘- против часовой стрелки в четверть поворота верхней части лица
  • U2 – половина поворота в любом направлении верхней части лица

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

Шаг 1: Крест

Во-первых, переверните некоторые края, чтобы на верхней части лица есть белый крест. Примените следующие повороты:

  • F, R ‘, D’, R, F2, R ‘, U, R, u’, R ‘, R2, L2, U2, R2, L2.

Крест сейчас решен.

Шаг 2: белые углы

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

  • Дно: R ‘, D’, R, D (повтор до тех пор, пока угол не перемещается в правильное место)
  • Вершина: R ‘, D’, R, D (это перемещает угловой на дно; затем следуйте инструкциям выше)

Шаг 3: кромки среднего слоя

  • Переверните кубик, чтобы белый на дне.
  • Ищите край, который находится на верхней части лица и не имеет желтого на нем.
  • Выполните u-поворот так, чтобы цвет на передней поверхности краевых спичков с центром.
  • В зависимости от направления того, что край может пойти, применить одну из следующих рядов поворотов: – Слева: u ‘, l’, u, l, u, f, u ‘, f’ – право: u, r, u ‘ , R ‘, u’, f ‘, u, f)

Шаг 4: желтый крест

  • Примените следующие повороты, пока желтый крест на лице не появляется с желтым центром: F, R, U, R ‘, U’, F ‘.
  • Если есть форма «л», где две желтые части, отображаемые рядом друг с другом, примените следующие повороты: F, U, R, U ‘, R’, F ‘.
  • Если есть форма «линия», которая горизонтальная, примените следующие повороты: F, R, U, R ‘, u’, f ‘.

Шаг 5: Сун и антисуна

  • Посмотрите на лицо с желтым центром.
  • В зависимости от упоминаний ниже, нанесите одну из следующих рядов поворотов:
  • Если есть только один ориентированный угол: r, u, r ‘, u, r, u2, r’ (повторять до достижения нужной позиции)
  • Существует один ориентированный угол и один правый угол: U2, R, U2, R ‘, U’, R, U ‘, R’

Шаг 6: Отделка головоломки

  • Ищите наборы «фар» (два наклейки одного цвета в том же ряду, разделенные наклейкой другого цвета).
  • В зависимости от того, сколько существуют, нанесите одну из следующих рядов поворотов:
  • Если на каждой стороне есть набор фар: r, u ‘, r, u, r, u, r, u’, r ‘, u’, r2
  • В противном случае: R ‘, F, R’, B2, R, F ‘, R’, B2, R2

Сортировка алгоритмов

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

Линейный сортировка

Найдите наименьший элемент в списке, который будет отсортирован, добавьте его в новый список и удалите его из исходного списка. Повторите это, пока исходный список не будет пустым.

Сортировка пузыря

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

Сортировка вставки

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

Где алгоритмы используются в информатике?

Алгоритмы используются в каждой части информатики. Они образуют основу поля. В информатике, алгоритм дает компьютеру конкретный набор инструкций, который позволяет компьютеру делать все, будь то калькулятор или работает ракета. Компьютерные программы, по их ядру, алгоритмы, написанные на языках программирования, которые компьютер может понять. Компьютерные алгоритмы играют большую роль в том, как работает социальные медиа: какие сообщения появляются, какие объявления видны и так далее. Эти решения все сделаны алгоритмами. Программисты Google используют алгоритмы для оптимизации поиска, предсказывают, что пользователи собираются напечатать и многое другое. В решении проблем большая часть компьютерного программирования состоит в том, как сформулировать алгоритм.

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

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

Это Гостевой пост по junilearning.com.