Se citesc două numere naturale n și x, iar apoi n numere întregi reprezentând un vector v sortat crescător (v[0] < v[1] < ... < v[n-1]). Afișați poziția (numerotată de la 1) pe care apare x în vector sau -1 dacă x nu apare. Căutarea trebuie făcută folosind o funcție recursivă de căutare binară.
Definiți o funcție recursivă cautBin(v, lo, hi, x) care întoarce poziția lui x în v între indicii lo și hi sau -1 dacă x nu apare. La fiecare apel calculezi mid = (lo + hi) / 2 și:
- dacă
v[mid] == x, întorcimid + 1(poziția 1-bazată); - dacă
x < v[mid], recurgi pe jumătatea stângă[lo, mid-1]; - dacă
x > v[mid], recurgi pe jumătatea dreaptă[mid+1, hi].
Caz de bază: dacă lo > hi, întorci -1.