Вот наиболее распространенные алгоритмы, с которыми должен быть знаком каждый программист!

Давайте посмотрим на них поближе 👀

1) Бинарный поиск

Проверяет каждый элемент массива на наличие целевого значения, пока не будет найдено соответствие!!

Плюсы

  • Это гораздо более быстрый алгоритм
  • Это эффективно
  • Это простой алгоритм для понимания

Минусы

  • Его можно использовать только при сортировке данных.

2) Поиск в ширину (BFS)

Исследует соседние узлы (граф) перед переходом к узлам следующего уровня

Плюсы

  • Он найдет решение любой ценой, если оно есть!!
  • Решение с минимальными затратами может быть найдено BFS, если в вопросе есть несколько решений.

Минусы

  • Требует времени для выполнения
  • Потребление памяти больше

Применение BFS:-

  • Используйте, чтобы найти кратчайший путь

3) Поиск в глубину (DFS)

Исследует узлы, насколько это возможно, вдоль каждой ветви перед возвратом

Плюсы

  • Сложность времени и пространства меньше по сравнению с BFS

Минусы

  • Не уверен, что это даст вам результат

Применение DFS:-

  • Используйте, чтобы найти путь ч/б через две заданные вершины

4) Обход дерева в, до и после заказа

Итеративные и рекурсивные решения для обхода древовидной структуры данных

Обход дерева

Обход по порядку

Это выглядит следующим образом: Слева > Корень > Справа.

SO (4->2->5->1->3)

Использование порядка:-

Неупорядоченный обход дает узлы в неубывающем порядке

Обход предварительного заказа

Это выглядит следующим образом: Корень > Левый > Правый.

So (1->2->4->5->3)

Использование предварительного заказа:-

Предварительный обход используется для создания копии дерева.

Обход пост-заказа

Это выглядит так: Слева –> Справа > Корень.

So (4->5->2->3->1)

Использование почтового заказа:-

Обход в обратном порядке используется для удаления дерева

5) Вставка, выделение, слияние, быстрая, подсчет, сортировка кучей

Эти алгоритмы эффективно сортируют заданный массив, используя различные методы.

Ссылка для получения дополнительной информации об алгоритме сортировки:-

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

Сортировка выбором

"Сортировка слиянием"

Быстрая сортировка

Сортировка подсчетом

Сортировка кучей

6) Алгоритм Крускала

Строит минимальное остовное дерево из связного весового графа.

7) Алгоритм Флойда Уоршалла

Возвращает кратчайшие пути ч/б для каждой пары вершин в графе.

8) Алгоритм Дейкстры

Это алгоритм поиска кратчайших путей ч/б узлов в графе.

9) Алгоритм Беллмана Форда

В отличие от алгоритма Дейкстры, он может обрабатывать ребра отрицательного веса в графе.

10) Алгоритм Кадане

Находит непрерывный подмассив в массиве с наибольшей суммой

11) Алгоритм Ли

Это одно из возможных решений проблем маршрутизации лабиринта.

12) Алгоритм заливки

Определяет область, связанную с данным узлом в многомерном массиве

13) Топологическая сортировка в направленном ациклическом графе

Линейный порядок вершин ориентированного графа, предназначенный для направленного ациклического графа (DAG).

14) Алгоритм поиска союза

Работает с непересекающейся структурой данных для выполнения некоторой операции

2 полезные операции:-

  • Найти. Это можно использовать для определения того, находятся ли два элемента в одном и том же подмножестве.
  • Union — объединение двух подмножеств в одно подмножество.

Спасибо, что прочитали 🙏🏻😇

Рахул