Binárne vyhľadávanie: Rozdiel medzi revíziami

Pridaných 13 bajtov ,  pred 9 mesiacmi
→‎Implementácie: implementacia 2 teraz vracia index hľadanej hodnoty
(→‎Implementácie: zmena v kóde - vyhľadávanie teraz vracia index hľadaného elementu, čo je obvyklejšie)
Značky: úprava z mobilu úprava z mobilného webu
(→‎Implementácie: implementacia 2 teraz vracia index hľadanej hodnoty)
Značky: úprava z mobilu úprava z mobilného webu
 
== Implementácie ==
 
Rekurzívna implementácia binárneho vyhľadávania v jazyku [[Python]] 3:
<source lang="python">
def binarySearch(zoznam, hodnota, vlavo, vpravo):
if vlavo > vpravo:
return -1 # hodnota nenajdenánenajdena
 
stred = vlavo + int((vpravo - vlavo) / 2)
if zoznam[stred] == hodnota:
return stred
if hodnota < zoznam[stred]:
else:
return binarySearch(zoznam, hodnota, stred + 1, vpravo)
</source>
if zoznam[stred] == hodnota:
return stred
</source>
 
Vďaka tomu, že rekurzívne volania sú na konci funkcie ([[koncová rekurzia]]), je možné túto implementáciu prepísať len pomocou cyklu
<source lang="python">
def binarySearch(zoznam, hodnota, vlavo, vpravo):
while vlavo <= vpravo:
stred = vlavo + int((vpravo - vlavo) / 2)
 
if zoznam[stred] == hodnota:
if hodnota < return Truezoznam[stred]:
if hodnota < zoznam[vpravo = stred]: - 1
vpravo = stred - 1else:
else: vlavo = stred + 1
 
vlavo = stred + 1
if zoznam[stred] == hodnota:
return False
vlavo =return stred + 1
 
return -1 # hodnota nenajdena
</source>
 
275

úprav