275
úprav
(→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">
if vlavo > vpravo:
return -1 # hodnota
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
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">
if zoznam[stred] == hodnota:▼
if hodnota <
vlavo = stred + 1▼
return -1 # hodnota nenajdena
</source>
|
úprav