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

Алгоритмы каждый программист должен знать

Введение Привет Ребята, сегодня я собираюсь начать сериал имени «Алгоритм каждый … Теги с WebDev, Java, Python, Watercoole.

Алгоритмы каждый программист должен знать (2 части серии)

Привет, ребята, сегодня я собираюсь начать серию по имени “алгоритм Каждый программист должен знать. «В этой серии мы собираемся смотреть в различные алгоритмы, такие как поиск, сортировка, графики, массив и т. Д.

Сегодня начиная с самой первой части серии с алгоритмом поиска. Мы собираемся посмотреть на 4 алгоритма поиска, которые должны знать каждый программист. Теперь давайте начнем.

Линейный поиск

В информатике, линейный поиск или последовательный поиск – это способ нахождения элемента в списке. Это последовательно проверяет каждый элемент списка, пока совпадение не найдено, либо весь список не будет искать.

В линейном поиске мы ищем целевой элемент в списке в последовательном порядке по одному на один из первого элемента списка для последнего.

Лучший случай: целевое значение находится в первом положении списка

В худшем случае: целевое значение – последняя позиция списка

Когда использовать:

  • Когда список несортирован
  • Когда список маленький

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

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

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

Лучший случай: целевое значение находится в среднем положении списка

Худший случай: целевое значение равно первой или последней позиции списка

Когда использовать:

  • Когда список отсортирован
  • Когда список большой

Глубина первый поиск (DFS)

Поиск первого глубины (DFS) – это алгоритм для прохождения и поиска древовидных структур данных. Алгоритм начинается на корневом узле (выбирая какой-то произвольный узел в качестве корневого узла в случае графика) и исследует как можно дальше вдоль каждого ветви перед возвратом.

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

Лучший случай: целевое значение находится в корневой позиции дерева

Худший случай: целевое значение находятся на кончике подразделения последнего упорядоченного ветви

Когда использовать:

  • Когда дерево очень широкое
  • Когда целевое значение находится в глубине дерева

Ширина первого поиска (BFS)

Широко-первый поиск (BFS) – это алгоритм для прохождения и поиска древовидных структур данных. Он начинается в корне дерева (или какого-то произвольного узла графика, иногда называемого «ключом поиска»), и исследует все узлы соседа на нынешней глубине перед перемещением к узлам на следующем уровне глубины.

В BSF, так же, как в DFS, мы выбираем корневой узел графа, дерева или структуры данных. После узла мы перемещаемся на все соседний узел, а затем на следующий уровень, который является всем узлом, прилегающим к ветви.

Лучший случай: целевое значение находится в корневой позиции дерева

В худшем случае: целевое значение находится на кончике самой длинной ветви дерева

Когда использовать:

  • Когда целевое значение не далеко от корня дерева
  • Когда дерево очень глубокое, и целевое значение реже.

Спасибо за чтение поста в блоге, и я надеюсь, что вам тоже нравятся. Я скоро вернусь с следующей частью серии.

Алгоритмы каждый программист должен знать (2 части серии)

Оригинал: “https://dev.to/surajondev/algorithms-every-programmer-should-know-part-1-searching-algorithm-1hd3”