Алгоритми претраживања и сортирања су популарни алгоритми на било којим програмским језицима. Они су основа за разумевање основа програмирања. Један од таквих популарних алгоритама претраживања је Бинарно претраживање у . У овом чланку ћу вам рећи све о његовој примени.
У овом чланку су обрађене следеће теме:
Хајде да почнемо!
Шта је бинарна претрага?
Бинарна претрага у је алгоритам претраживања који проналази положај циљне вредности унутар сортираног низ . Бинарна претрага упоређује циљну вредност са средњим елементом низа. Торади само на сортираном скупу елемената. Да бисте користили бинарну претрагу колекције, прво се мора сортирати.
Када користи се за обављање операција на разврстаном скупу, број итерација се увек може смањити на основу вредности која се претражује. Можете видети на горњој снимци проналаска средњи елемент . Аналогија бинарног претраживања је коришћење информација по којима је низ сортиран и смањење временске сложености на О (лог н) .
Имплементација алгоритма бинарне претраге
Погледајмо доњи псеудо код да бисмо га боље разумели.
Процедура бинари_сеарцх А & ларр сортирани низ н & ларр величина низа к & ларр Вредност коју треба претражити Сет лов = 1 Сет хигх = н вхиле к нот фоунд иф хигхОбјашњење:
Корак 1: Прво упоредите к са средњим елементом.
Корак 2: Ако се к поклапа са средњим елементом, тада морате вратити средњи индекс.
Корак 3: Иначе, Ако је к веће од средњег елемента, тада к може лежати само у десном полуполову након средњег елемента. Отуда понављате десну половину.
Корак 4: Иначе, ако је (к мање) онда се понавља за леву половину.
Тако треба да тражите елемент у датом низу.
како написати упозорење у јавасцриптуПогледајмо сада како рекурзивно применити бинарни алгоритам претраживања. Испод показује то исто.
Рекурзивна бинарна претрага
јавна класа БинариСеарцх {// Јава имплементација рекурзивног бинарног претраживања // Враћа индекс к ако је присутан у арр [л..х], иначе враћа -1 инт бинариСеарцх (инт а [], инт л, инт х, инт к) {иф (х> = л) {инт мид = л + (х - л) / 2 // Ако је елемент присутан у самој средини иф (а [мид] == к) ретурн мид // Иф елемент је мањи од средине, тада може бити присутан у левом поднизу само ако (а [мид]> к) ретурн бинариСеарцх (арр, л, мид - 1, к) // У супротном елемент може бити присутан само у десном субраиу ретурн бинариСеарцх (арр, мид + 1, х, к)} // Долазимо овде када елемент није присутан у низу ретурн -1} публиц статиц воид маин (Стринг аргс []) {БинариСеарцх об = нев БинариСеарцх () инт а [] = {20, 30, 40, 10, 50} инт н = а.ленгтх инт к = 40 инт рес = об.бинариСеарцх (а, 0, н - 1, к) иф (рес == -1) Систем.оут .принтлн ('Елемент није присутан') елсе Систем.оут.принтлн ('Елемент је пронађен у индексу' + рес)}}По извршењу горњег програма, лоцираће елемент присутан у одређеном индексу
Елемент је пронађен у индексу 2Дакле, ово нас доводи до краја бинарне претраге у Јава чланак. Надам се да вам је било информативно и да сте вам помогли у разумевању .
Погледајте Едурека, поуздана компанија за учење на мрежи са мрежом од више од 250.000 задовољних ученика раширених широм света. Овде смо да вам помогнемо у сваком кораку на вашем путу, да бисте постали поред овог питања о јава интервјуу. Дошли смо до наставног плана и програма који је дизајниран за студенте и професионалце који желе да буду Јава програмери. Курс је дизајниран да вам пружи почетну предност у Јава програмирању и обучи вас како за основне тако и за напредне Јава концепте, заједно са разним Јава оквирима попут Хибернате & Спринг.
У случају да имате било каквих потешкоћа приликом примене Бинарне претраге у , молимо вас наведите га у одељку за коментаре испод и јавићемо вам се најраније.