Pagini recente » Diferente pentru utilizator/visuianmihai intre reviziile 32 si 31 | Diferente pentru utilizator/iulianrotaru intre reviziile 3 si 4 | Diferente pentru utilizator/mihai_florea intre reviziile 11 si 12 | Profil Simon2712 | Diferente pentru blog/cautare-binara intre reviziile 10 si 11
Nu exista diferente intre titluri.
Diferente intre continut:
}
==
Invariantul este A[lo] < x <= A[hi] (pentru simplitate consideram A[-1] == -oo si A[A.length] == +oo). La fiecare pas injumatatim distanta intre lo si hi. Observam ca invariantul face ca lo sa fie tot timpul diferit de hi si astfel conditia continuare e hi - lo > 1 nu hi - lo > 0. Cand hi si lo sunt consecutive putem lua o decizie, sa returnam A[hi] daca x e in sir sau -1 daca x nu apare in sir.
Invariantul este <tex>A[lo] < x <= A[hi] </tex> (pentru simplitate consideram <tex>A[-1] == -oo</tex> si <tex>A[A.length] == +oo</tex>). La fiecare pas injumatatim distanta intre lo si hi. Observam ca invariantul face ca lo sa fie tot timpul diferit de hi si astfel conditia continuare e hi - lo > 1 nu hi - lo > 0. Cand hi si lo sunt consecutive putem lua o decizie, sa returnam A[hi] daca x e in sir sau -1 daca x nu apare in sir.
O data ce ati inteles ideea de mai sus, veti vedea cum puteti schimba invariantul usor pentru a rezolva probleme ca gasirea ultimei aparitii a lui x in sirul sortat, gasirea predecesorului lui x in sir sau gasirea succesorului.
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.