Pagini recente » Solutii la concursul acm 2013 etapa nationala partea a doua | Diferente pentru blog/cautare-binara intre reviziile 34 si 33 | Diferente pentru blog/carti intre reviziile 89 si 90 | Monitorul de evaluare | Diferente pentru blog/cautare-binara intre reviziile 34 si 35
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 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
* 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
** 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.