Алгоритмы каждый программист должен знать (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”