Binární vyhledávání: Porovnání verzí
Smazaný obsah Přidaný obsah
přidání sekce související články |
→top: Celkové přepracování (úvodu) |
||
Řádek 1:
{{Různé významy|tento=vyhledávání v seznamu|druhý=řešení rovnic|stránka=půlení intervalů}}
'''Binární vyhledávání''',
[[Algoritmus]] používá [[Aritmetika|aritmetiku]], a proto je pro jeho nasazení nezbytné, aby k prvkům sady bylo možno přistoupit tzv. náhodným způsobem — na základě indexu. Z tohoto důvodu nelze binárně vyhledávat ve [[Lineární seznam|spojových seznamech]]. Vyhovující [[Datová struktura|datovou strukturou]] je [[Pole (datová struktura)|pole]].
[[Asymptotická složitost#Typické příklady časové složitosti|Časová složitost]] binárního vyhledávání je logaritmická — <math>O(\log n)</math> —; v nejhorším případě je potřeba <math>\log_2 n +1</math> iterací. Vyhledávání půlením intervalu je značně rychlejší než [[lineární vyhledávání]], jež má lineární [[Asymptotická složitost#Typické příklady časové složitosti|časovou složitost]] — <math>O(n)</math>. Ve srovnání s binárním vyhledáváním ovšem lineární vyhledávání nepožaduje setřídění ani možnost náhodného přístupu.
Navzdory [[Rekurze|rekurentní]] definici lze [[algoritmus]] formulovat také [[Iterace|iterativně]]. Zpravidla se tím ztratí na přehlednosti [[Zdrojový kód|zdrojového kódu]], zato však získá na rychlosti práce algoritmu; s voláním [[Podprogram|podprogramů]] je totiž spojena režie. Iterativní zápis je [[Optimalizace (informatika)|optimalizací]].
== Implementace ==
|