Врсте алгоритама претраге

Мајка и отац љубе девојку на тепиху

Породица користи лаптоп.

Кредит за слику: алтрендо имагес/Стоцкбите/Гетти Имагес

Алгоритми претраживања чине важан део многих програма. Неке претраге укључују тражење уноса у бази података, као што је тражење вашег записа у бази података пореске управе. Други алгоритми за претрагу пролазе кроз виртуелни простор, као што су они који траже најбоље шаховске потезе. Иако програмери могу да бирају између бројних типова претраге, они бирају алгоритам који најбоље одговара величини и структури базе података како би пружио корисничко искуство.

Линеар Сеарцх

Линеарна претрага је алгоритам избора за кратке листе, јер је једноставна и захтева минималан код за имплементацију. Алгоритам линеарне претраге гледа на прву ставку листе да види да ли је тражите и, ако јесте, завршили сте. Ако није, гледа на следећу ставку и даље кроз сваки унос на листи.

Видео дана

Бинарно претраживање

Бинарно претраживање је популаран алгоритам за велике базе података са записима пореданим по нумеричком кључу. Примери кандидата укључују базу података ИРС-а означену бројем социјалног осигурања и ДМВ записе означене бројевима возачке дозволе. Алгоритам почиње од средине базе података - ако је ваш циљни број већи од средњег броја, претрага ће се наставити са горњом половином базе података. Ако је ваш циљни број мањи од средњег броја, претрага ће се наставити са доњом половином базе података. Непрестано понавља овај процес, преполовљајући базу података сваки пут док не пронађе запис. Ова претрага је компликованија од линеарне претраге, али за велике базе података је много бржа од линеарне претраге.

Претрага дрвета

Претрага дрвета функционише само ако се подаци уклапају у структуру стабла. База података почиње од корена који иде до неколико ставки, од којих свака иде до још неколико ставки и тако даље док не добијете стабло. Један пример је игра шаха. Тренутна позиција на плочи је корен. Прави потези са ове позиције представљају један корак низ стабло, и тако све док играч не пронађе позицију на табли која га оставља у најбољој позицији.

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

Претраживање генетског алгоритма је једна од техника која стоји иза вештачке интелигенције. Он тражи „оптимално решење“ изражено као низ података — као што је листа унутрашњих димензија млазног мотора који обезбеђује максимални потисак. Претрага почиње насумичном популацијом низова и тестира сваки од њих, задржавајући најбоље и узгајајући их да би се добила следећа генерација. Програм наставља да понавља овај процес све док не дође до оптималног низа решења.