Diferente pentru blog/cautare-binara intre reviziile #32 si #31

Nu exista diferente intre titluri.

Diferente intre continut:

Cautarea binara e probabil primul algoritm studiat de elevii sau studentii la informatica care exemplifica tehnica divide and conquer. Ea rezolva problema gasirii unui element x in un sir sortat A. Ideea de baza e simpla: folosindu-ne de monotonia datelor putem reduce la fiecare pas problema la jumatate. Totusi aproape fiecare concurent olimpiada de informatica are cate o poveste cum a bushit o problema din cauza unei cautari binare. La fel majoritatea programatorilor ce termina facultatea de informatica nu reusesc sa scrie o cautare binara fara probleme.
*Buguri frecvente:*
 
O implementare poate avea gramada de probleme cum ar fi:
* ciclu infinit
* probleme cand x apare in apropiere de inceputul sau finalul sirului
*Optimizari premature*
 
Am vazut tot felul de variante, de exemplu unii testeaza daca a[mid] e egal cu x si scurt circuiteaza cautarea. Aceasta optimizare nu ajuta in cazul general, doar complica codul. Alta varianta e ca poti reduce ceva mai mult problema folosind hi = mid - 1 sau lo = mid + 1. Ai un pas logic in plus la care trebuie sa fi atent. Pe langa asta cazurile in care ajungem la una din marginile sirului pot deveni mai dificile.

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.