Видове алгоритми за търсене

Майка и баща целуват момиче на килим

Семейство използва лаптоп.

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

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

Линейно търсене

Линейното търсене е алгоритъмът на избор за кратки списъци, защото е прост и изисква минимален код за изпълнение. Алгоритъмът за линейно търсене разглежда първия елемент от списъка, за да види дали го търсите и ако е така, сте готови. Ако не, той разглежда следващия елемент и през всеки запис в списъка.

Видео на деня

Двоично търсене

Двоичното търсене е популярен алгоритъм за големи бази данни със записи, подредени по цифров ключ. Примерните кандидати включват базата данни на IRS с ключ от социалноосигурителен номер и DMV записите, записани с номера на шофьорска книжка. Алгоритъмът започва от средата на базата данни - ако целевото ви число е по-голямо от средното число, търсенето ще продължи с горната половина на базата данни. Ако целевият ви номер е по-малък от средното число, търсенето ще продължи с долната половина на базата данни. Той продължава да повтаря този процес, като разрязва базата данни наполовина всеки път, докато намери записа. Това търсене е по-сложно от линейното търсене, но за големи бази данни е много по-бързо от линейното търсене.

Търсене на дърво

Търсенето в дърво работи само ако данните се вписват в дървовидна структура. Базата данни започва от корен, който отива до няколко елемента, всеки от които отива до още няколко елемента и така нататък, докато имате дърво. Един пример е играта на шах. Текущата позиция на дъската е основната. Законните ходове от тази позиция представляват една стъпка надолу по дървото и така нататък, докато играчът намери позицията на дъската, която го оставя в най-добрата позиция.

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

Търсенето с генетичен алгоритъм е една от техниките зад изкуствения интелект. Той търси "оптимално решение", изразено като низ от данни - като списък с вътрешни размери на реактивен двигател, който осигурява максимална тяга. Търсенето започва с произволна популация от низове и тества всеки от тях, запазвайки най-добрите и ги отглеждайки, за да получите следващото поколение. Програмата продължава да повтаря този процес, докато стигне до оптимален низ за решение.