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

Линейный поиск в Python – практический подход

Линейный поиск работает очень похожи на то, как мы ищем в случайном списке предметов, указанных нам.

Автор оригинала: Pankaj Kumar.

Линейный поиск в Python – практический подход

Давайте узнаем о простом и простой алгоритме поиска в Python.

Алгоритм линейного поиска

Линейный поиск работает очень похожи на то, как мы ищем в случайном списке предметов, указанных нам.

Позвольте нам сказать, что нам нужно найти слово на данной странице, мы начнем сверху и просматриваем каждое слово один за другим, пока мы не найдем слово, которое мы ищем.

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

Давайте возьмем пример:

Теоретический пример алгоритма линейного поиска

Рассматривать,

  • Список: 19, 2000, 8, 2, 99, 24, 17, 15, 88, 40
  • Цель: 99.

Итак, нам нужно найти 99 в данном списке. Начнем с первого элемента, а затем пройти каждый элемент в списке.

  • Пункт 1: 19, не найден.
  • Пункт 2: 2000, не найден.
  • Пункт 3: 8, не найден.
  • Пункт 4: 2, не найден.
  • Пункт 5, 99, цель найдена, концевая петля.

Итак, мы нашли данную цель после пяти проверок в положении 5.

Если данная цель не была в списке, то мы прошли бы весь список и не нашли товар, а после окончания списка мы бы объявили бы товар, который не найден.

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

Примечание об эффективности

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

В других условиях алгоритм имеет временную сложность O (n). Это означает, что если количество элементов в списке умножено на сумму, то время, необходимое для завершения алгоритма, будет умножена на эту же сумму.

Есть лучшие алгоритмы поиска, такие как Sentinel, двоичный или фибоначчи, но линейный поиск – это самый простой и самый фундаментальный из них, что означает, что каждый программист должен знать, как его использовать.

Реализация алгоритма линейного поиска в Python

def linear_search(lst, target):
    for i in range(len(lst)):
        if(lst[i] == target):
            return i
    return -1

Давайте посмотрим на код,

  • Мы создаем функцию для линейного поиска, который принимает два аргумента. Первый аргумент – это список, содержащий элементы, а второй аргумент – это целевой элемент, который должен быть найден.
  • Тогда мы создаем петлю с счетчиком Я , Я проведет все индексы данного списка, то есть Я будет идти от 0 до длины списка – 1.
  • В каждой итерации мы сравниваем цель на элемент списка по индексу Я Отказ
  • Если они одинаковы, то это означает, что мы нашли цель в списке в этом индексе, поэтому мы просто возвращаем этот индекс и закончим петлю, а также функцию.
  • Если весь список проверяется, и элементы не возвращаются, то элемент управления выйдет из списка, и теперь мы уверены, что целевой элемент не находится в списке, поэтому мы возвращаем –1 как способ сказать, что товар не был найден.

Давайте посмотрим, как будет вести алгоритм для элемента в списке, а другой предмет, который не находится в списке:

Выход

Линейный поиск Python пример

Здесь мы отправляем два предмета в качестве цели: 99, которая находится в списке на индексе 4, а 12, что не в списке.

Как видно, алгоритм вернул индекс 4 на 99 и -1 для 12. Что указывает на то, что 99 находится на индексе 4, а 12 отсутствует из списка, и, следовательно, алгоритм работает.

Заключение

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

Мы обсудили, как работает линейный поиск, мы говорили о своей эффективности и почему он называется «линейным».

Затем мы посмотрели, как алгоритм написан в Python, что он делает, и подтвердил, что, глядя на выход кода. Я надеюсь, что вы узнали что-то и увидимся в другом руководстве.