Pojasnjeni algoritmi linearnega in binarnega iskanja

Pojasnjeni algoritmi linearnega in binarnega iskanja

Sposobnost iskanja nekaterih podatkov je pomemben vidik računalništva. Algoritmi iskanja se uporabljajo za iskanje določene postavke v naboru podatkov.





Algoritmi vrnejo logični rezultat (true ali false) v iskalno poizvedbo. Prav tako jih je mogoče spremeniti tako, da dajo relativni položaj najdene vrednosti.





V tem članku se bodo algoritmi osredotočili na ugotavljanje, ali vrednost obstaja.





Algoritmi linearnega iskanja

Linearno iskanje je znano tudi kot zaporedno iskanje. Pri tej vrsti iskanja se vsaka vrednost na seznamu obiskuje ena za drugo na urejen način, pri tem pa preveri, ali želena vrednost obstaja.

Algoritem preverja vrednost po vrednosti, dokler ne najde vrednosti, ki jo iščete, ali pa zmanjka vrednosti za iskanje. Ko zmanjka vrednosti za iskanje, to pomeni, da vaša iskalna poizvedba ne obstaja na seznamu.



Algoritem zaporednega iskanja za parametre vzame seznam vrednosti in želeno postavko na seznamu. Vrnjeni rezultat je inicializiran kot Napačno in se bo spremenil v Prav ko najdete želeno vrednost.

Spodaj si za primer oglejte izvedbo Pythona:





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

Algoritemska analiza

Najboljši scenarij se zgodi, ko je želeni element prvi na seznamu. Najhujši primer se zgodi, ko je želeni element zadnji na seznamu (n -ti element). Zato je časovna zapletenost linearnega iskanja O (n).

Povprečni scenarij primera v zgornjem algoritmu je n/2.





Povezano: Kaj je zapis Big-O?

Pomembno je vedeti, da uporabljeni algoritem predvideva, da mu je na voljo naključen seznam elementov. To pomeni, da postavke seznama niso v določenem vrstnem redu.

kako onemogočiti tipko na tipkovnici

Recimo, da so bili predmeti v določenem vrstnem redu, recimo od najmanjšega do največjega. Pri izračunu bi bilo mogoče doseči nekaj prednosti.

Vzemite primer iskanja 19 na danem seznamu: [2, 5, 6, 11, 15, 18, 23, 27, 34]. Ko dosežete 23, bo postalo jasno, da predmet, ki ga iščete, ne obstaja na seznamu. Zato ne bi bilo več pomembno nadaljevati iskanja po preostalih postavkah seznama.

Binarni iskalni algoritmi

Videli ste, kako lahko urejen seznam zmanjša potrebne izračune. Binarni iskalni algoritem še bolj izkorišča to učinkovitost, kot jo ima urejen seznam.

Algoritem se začne tako, da vzame srednjo vrednost urejenega seznama in preveri, ali je želena vrednost. Če ni, se vrednost preveri, ali je manjša ali večja od želene vrednosti.

Če je manj, potem ni treba preverjati spodnje polovice seznama. V nasprotnem primeru se premakne na zgornjo polovico seznama.

Povezano: Kaj je rekurzija in kako jo uporabljate?

Ne glede na to, kateri podlist je izbran (levi ali desni), bo srednja vrednost znova določena. Vrednost se ponovno preveri, če je zahtevana vrednost. Če ni, se preveri, ali je manjša ali večja od zahtevane vrednosti.

kako namestiti pisave v gimp

Ta postopek se ponavlja, dokler ni najdena vrednost, če obstaja.

Spodnja implementacija Pythona je za binarni iskalni algoritem.

def binarySearch (moj seznam, element):

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

Algoritemska analiza

Najboljši scenarij se zgodi, ko je želeni element srednji element. Najslabši scenarij pa ni tako enostaven. Sledite spodnji analizi:

Po prvi primerjavi bo n/2 elementov ostalo. Po drugem bodo ostali n/4 predmeti. Po tretjem, n/8.

Upoštevajte, da se število postavk zmanjšuje na polovico, dokler ne doseže n/2i, kjer je i število primerjav. Po vsem razdeljevanju dobimo le 1 element.

To pomeni:

n/2i = 1 Zato je binarno iskanje O (log n).

Prehod na razvrščanje

Pri binarnem iskanju smo obravnavali primer, ko je bila matrika že naročena. Predpostavimo pa, da ste imeli neurejen nabor podatkov in ste na njem želeli izvesti binarno iskanje. Kaj bi storili?

Odgovor je preprost: razvrstite. V računalništvu so številne tehnike razvrščanja dobro raziskane. Ena od teh tehnik, ki jih lahko začnete preučevati, je algoritem razvrščanja pri izbiri, medtem ko imamo na voljo veliko vodnikov, povezanih tudi z drugimi področji.

Deliti Deliti Cvrkutati E-naslov Kako uporabiti razvrščanje izbire

Začetnike je razvrstitev pri izbiri nekoliko težavna, vendar ni preveč zahtevna, ko enkrat zamahnete.

Preberite Naprej
Sorodne teme
  • Programiranje
  • Pojasnjena tehnologija
  • Programiranje
  • Algoritmi
  • Analiza podatkov
O avtorju Jerome Davidson(22 objavljenih člankov)

Jerome je osebni pisatelj pri MakeUseOf. Zajema članke o programiranju in Linuxu. Je tudi navdušenec nad kriptovalutami in vedno spremlja kripto industrijo.

Več od Jeroma Davidsona

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite