Типи алгоритмів пошуку

Мати і батько цілують дівчину на килимку

Сім’я користується ноутбуком.

Авторство зображення: altrendo images/Stockbyte/Getty Images

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

Лінійний пошук

Лінійний пошук є алгоритмом вибору для коротких списків, оскільки він простий і вимагає мінімального коду для реалізації. Алгоритм лінійного пошуку дивиться на перший елемент списку, щоб перевірити, чи шукаєте ви його, і, якщо так, ви закінчили. Якщо ні, він переглядає наступний елемент і переходить до кожного запису в списку.

Відео дня

Бінарний пошук

Двійковий пошук – популярний алгоритм для великих баз даних із записами, упорядкованими за числовим ключем. Приклади кандидатів включають базу даних IRS із номером соціального страхування та записи DMV, наведені за номерами водійських прав. Алгоритм починається з середини бази даних – якщо ваше цільове число більше, ніж середнє, пошук продовжиться з верхньої половини бази даних. Якщо ваш цільовий номер менший за середнє число, пошук продовжиться з нижньою половиною бази даних. Він постійно повторює цей процес, розрізаючи базу даних навпіл щоразу, поки не знайде запис. Цей пошук складніший, ніж лінійний пошук, але для великих баз даних він набагато швидше, ніж лінійний пошук.

Пошук дерева

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

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

Пошук генетичного алгоритму є одним із методів штучного інтелекту. Він шукає «оптимальне рішення», виражене у вигляді рядка даних — наприклад, список внутрішніх розмірів реактивного двигуна, який забезпечує максимальну тягу. Пошук починається з випадкової сукупності рядків і перевіряє кожну з них, зберігаючи найкращі та розводячи їх, щоб отримати наступне покоління. Програма продовжує повторювати цей процес, поки не дійде до оптимального рядка рішення.