Разница между двоичным поиском и линейным поиском

Разница между двоичным поиском и линейным поиском
Разница между двоичным поиском и линейным поиском

Видео: Разница между двоичным поиском и линейным поиском

Видео: Разница между двоичным поиском и линейным поиском
Видео: Просто о сложном: Бинарный поиск 2024, Апрель
Anonim

Двоичный поиск против линейного поиска

Линейный поиск, также известный как последовательный поиск, является самым простым алгоритмом поиска. Он ищет указанное значение в списке, проверяя каждый элемент в списке. Двоичный поиск - это также метод поиска указанного значения в отсортированном списке. Метод двоичного поиска уменьшает вдвое количество проверяемых элементов (на каждой итерации), сокращая время, необходимое для нахождения данного элемента в списке.

Что такое линейный поиск?

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

Что такое двоичный поиск?

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

В чем разница между двоичным поиском и линейным поиском?

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

Рекомендуем: