Типы поисковых алгоритмов

Мать и отец целуют девушку на ковре

Семья пользуется ноутбуком.

Кредит изображения: altrendo images / Stockbyte / Getty Images

Алгоритмы поиска составляют важную часть многих программ. Некоторые поисковые запросы включают поиск записи в базе данных, например поиск вашей записи в базе данных IRS. Другие алгоритмы поиска перемещаются по виртуальному пространству, например, те, которые ищут лучшие шахматные ходы. Хотя программисты могут выбирать из множества типов поиска, они выбирают алгоритм, который лучше всего соответствует размеру и структуре базы данных, чтобы обеспечить удобство использования.

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

Линейный поиск - это предпочтительный алгоритм для коротких списков, поскольку он прост и требует минимального кода для реализации. Алгоритм линейного поиска смотрит на первый элемент списка, чтобы узнать, ищете ли вы его, и если да, то все готово. В противном случае он просматривает следующий элемент и каждую запись в списке.

Видео дня

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

Двоичный поиск - популярный алгоритм для больших баз данных с записями, упорядоченными по числовому ключу. Примеры кандидатов включают базу данных IRS с ключом номера социального страхования и записи DMV с ключом номера водительского удостоверения. Алгоритм начинается с середины базы данных - если ваше целевое число больше среднего, поиск продолжится с верхней половины базы данных. Если ваше целевое число меньше среднего числа, поиск продолжится с нижней половины базы данных. Он продолжает повторять этот процесс, каждый раз разрезая базу данных пополам, пока не найдет запись. Этот поиск более сложен, чем линейный поиск, но для больших баз данных он намного быстрее, чем линейный поиск.

Поиск по дереву

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

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

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