Binárne vyhľadávanie: Rozdiel medzi revíziami
Smazaný obsah Přidaný obsah
typografia |
d aktualizacia algoritmu pre python 3; doplnenie zmienky o chybe |
||
Riadok 7:
== 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 vpravo < vlavo:
return False
stred = vlavo + int((vpravo - vlavo) / 2)
if zoznam[stred] == hodnota:
return True
Riadok 25:
def binarySearch(zoznam, hodnota, vlavo, vpravo):
while vlavo <= vpravo:
stred = vlavo + int((vpravo - vlavo) / 2)
if zoznam[stred] == hodnota:
return True
Riadok 36:
=== Implementačné komplikácie ===
Keď Jon Bentley priradil binárne vyhľadávanie ako problém pre kurz profesionálnych programátorov, zistil, že 90% z nich nedokáže poskytnúť správne riešenie.
Bentley-ho vlastná implementácia binárneho vyhľadávania, publikovaná v roku 1986 v knihe ''Programming Pearls'', obsahovala chybu ktorá pri vysokých číslach zbytočne spôsobovala prekročenie maximálnej veľkosti premennej typu integer. Chyba nebola odhalená viac ako 20 rokov.<ref>https://research.googleblog.com/2006/06/extra-extra-read-all-about-it-nearly.html</ref> V oficiálnej knižnici
▲* Ukážkový kód algoritmu, ktorý bol na tejto stránke, pred úpravou túto chybu obsahoval tiež.
== Referencie ==
|