Napište program, který bude ve vzestupně usporádané posloupnosti celých čísel vyhledávat zadanou hodnotu pomocí rekurzivní varianty algoritmu binárního vyhledávání. Prohledávanou posloupnost náhodně generujte jako rostoucí s tím, že rozdíl dvou po sobě jdoucích prvků bude >=2. Délku generované posloupnosti zadá uživatel na standardní vstup s tím, že její hodnota musí být přirozené číslo větší jak 0.

Rekurzivní algoritmus binárního vyhledávání lze popsat následovně:

  1. Vyberte si pivot (např. prostřední prvek).
  2. Pokud je hledaný prvek shodný s pivotem, prvek jste nalezli a vypište jeho index.
  3. Pokud je pivot jediným prvkem posloupnosti, který se neshoduje s hledaným prvkem, prvek v posloupnosti neexistuje.
  4. Pokud je hledaný prvek menší jak vybraný pivot, aplikujte postup od bodu 1. na prvky s indexy menšími, než je index pivotu.
  5. Pokud je hledaný prvek větší jak vybraný pivot, aplikujte postup od bodu 1. na prvky s indexy většími, než je index pivotu.

Pokud algoritmus prvek nalezne vypíše:

"Prvek x nalezen na pozici i."

kde x, je hodnota hledaného prvku, i je jeho index v prohledávané posloupnosti.

Pokud se hledaný prvek v posloupnosti nenachází, program vypíše:

"Prvek x v posloupnosti není."

Vzhledem k tomu, že posloupnost je náhodně generovaná, je vhodné ji vypsat před tím, než se uživatele zeptáte na hledanou hodnotu.

Odevzdání:

Odevzdává se archív uloha3.zip ve formátu zip do odevzdávárny 3. domácí úkol, který bude obsahovat soubor main.c se zdrojovým kódem programu.

V případě odevzdávání opravy úlohy je odevzdávárna 3. domácí úkol (oprava), která bude otevřena týden po zadání domácí úlohy ve Vaší seminární skupině.