Pagini recente » Diferente pentru utilizator/andreiiii intre reviziile 6 si 5 | Diferente pentru problema/defrisare intre reviziile 41 si 42 | Monitorul de evaluare | Monitorul de evaluare | Diferente pentru blog/cautare-binara intre reviziile 35 si 34
Nu exista diferente intre titluri.
Diferente intre continut:
* linia 2: setam pe hi si lo inafara sirului, astfel invariantul e indeplinit si nu trebuie sa tratam cazuri speciale.
* linia 3: conditia de continuare a buclei e hi - lo > 1. Invariantul ales face ca hi si lo sa fie tot timpul distincte. La fiecare pas distanta intre hi si lo se injumatateste, iar cand hi si lo ajung consecutive ca pozitii in sir putem lua o decizie.
* linia 4: mid va fi tot timpul intre lo si hi.
* linia 6: stim ca A[mid] < x si astfel facand atribuirea lo = mid micsoram spatiu de cautare si pastra invariantul
* la linia 8 stim ca A[mid] >= x si putem face atribuirea hi = mid.
* la linia 10 vedem daca x e in sir
* linia x: stim ca A[mid] < x si astfel facand atribuirea lo = mid micsoram spatiu de cautare si pastra invariantul
* la linia y stim ca A[mid] >= x si putem face atribuirea hi = mid.
* la linia z vedem daca x e in sir
** in caz afirmativ putem sa returnam indexul hi
** un caz negativ e cand ultimul element din sir e mai mic decat x. Atunci avem lo = A.length - 1 si hi = A.length
** celalalt caz negativ e ca hi sa fie undeva in interiorul sirului si sa avem ca A[lo] < x < A[hi]
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.