Објашњени алгоритми линеарног и бинарног претраживања

Објашњени алгоритми линеарног и бинарног претраживања

Способност претраживања неких података важан је аспект рачунарства. Алгоритми претраживања се користе за тражење одређене ставке у скупу података.





Алгоритми враћају логички резултат (тачан или нетачан) у упит за претрагу. Такође се могу модификовати тако да дају релативни положај пронађене вредности.





За овај чланак, алгоритми ће се концентрисати на утврђивање да ли вредност постоји.





Алгоритми линеарног претраживања

Линеарно претраживање познато је и као секвенцијално претраживање. У овој врсти претраживања, свака вредност на листи се посећује једна по једна на уредан начин, док се проверава да ли постоји жељена вредност.

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



Алгоритам секвенцијалног претраживања узима листу вредности и жељену ставку на листи као своје параметре. Повратни резултат се иницијализује као Нетачно и промениће се у Истина када се пронађе жељена вредност.

Погледајте пример имплементације Питхона испод:





def linearSearch(mylist, item):
found = False
index = 0
while index if mylist[index] == item:
found = True
else:
index = index+1
return found

Алгоритамска анализа

Најбољи сценарио се дешава када је жељена ставка прва на листи. Најгори случај се дешава када је жељена ставка последња на листи (н -та ставка). Стога је временска сложеност линеарног претраживања О (н).

Просечан сценарио у горњем алгоритму је н/2.





Повезан: Шта је Биг-О нотација?

Важно је знати да коришћени алгоритам претпоставља да му је достављена насумична листа ставки. То јест, ставке листе нису у одређеном редоследу.

игре за више играча за андроид и иос

Претпоставимо да су ставке биле у одређеном редоследу, рецимо од најмањих до највећих. Било би могуће постићи неку предност у рачунању.

Узмите пример тражења 19 на датој листи: [2, 5, 6, 11, 15, 18, 23, 27, 34]. Након 23 године постало би јасно да ставка коју тражите не постоји на листи. Због тога више не би било важно наставити претрагу по осталим ставкама листе.

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

Видели сте како уређена листа може смањити потребно израчунавање. Бинарни алгоритам претраживања има још већу предност од ове ефикасности коју представља уређена листа.

Алгоритам почиње преузимањем средње вредности поређане листе и провером да ли је то жељена вредност. Ако није, тада се проверава вредност да ли је мања или већа од жељене вредности.

Ако је мање, онда нема потребе да проверавате доњу половину листе. У супротном, ако је већи, прелази се на горњу половину листе.

Повезано: Шта је рекурзија и како је користите?

Без обзира који подлист (леви или десни) изабран, средња вредност ће се поново одредити. Вредност се поново проверава да ли је потребна вредност. Ако није, проверава се да ли је мања или већа од захтеване вредности.

како присилно одустати без менаџера задатака

Овај процес се понавља све док се не пронађе вредност ако постоји.

Питхон имплементација испод служи за бинарни алгоритам претраживања.

деф бинариСеарцх (моја листа, ставка):

low = 0
high = len(mylist) - 1
found = False
while low <= high and not found: mid = (low + high) // 2
if mylist[mid] == item:found = True
elif item else:low = mid + 1
return found

Алгоритамска анализа

Најбољи сценарио се дешава када се утврди да је жељена ставка средња ставка. Најгори могући сценарио ипак није тако једноставан. Пратите доњу анализу:

Након првог поређења, остаће н/2 ставки. Након друге, н/4 ставке ће бити остављене. После трећег, н/8.

Имајте на уму да се број ставки наставља преполовљавати све док не досегну н/2и, где је и број поређења. Након цепања, завршавамо са само 1 ставком.

То подразумева:

н/2и = 1 Према томе, бинарно претраживање је О (лог н).

Прелазимо на сортирање

У бинарном претраживању размотрили смо случај где је дати низ већ наручен. Али претпоставимо да имате неуређен скуп података и да желите да извршите бинарно претраживање по њему. Шта би ти урадио?

Одговор је једноставан: средите га. У рачунарској науци постоји низ техника сортирања које су добро истражене. Једна од ових техника коју можете почети проучавати је алгоритам сортирања избора, док имамо доста водича везаних и за друга подручја.

Објави Објави Твеет Емаил Како се користи сортирање избора

За почетнике је мало тешко разумјети одабир, али то није превише изазовно када схватите ствари.

Прочитајте следеће
Повезане теме
  • Програмирање
  • Објашњена технологија
  • Програмирање
  • Алгоритми
  • Анализа података
О аутору Јероме Давидсон(22 објављена чланка)

Јероме је писац особља на МакеУсеОф -у. Он покрива чланке о програмирању и Линуку. Он је такође ентузијаст за крипто и увек прати крипто индустрију.

Више од Јеромеа Давидсона

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили