Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Diferente pentru problema/jocgraf intre reviziile 21 si 20 | Diferente pentru blog/cautare-binara intre reviziile 23 si 24
Nu exista diferente intre titluri.
Diferente intre continut:
Ideea de baza e ca vom folosi un invariant in bucla cautarii binare, adica o asertiune care e adevarata de fiecare data cand intram in bucla. Pentru cazul nostru acest invariant e ca lo indica spre un element care e mai mic ca x sau spre -1 si hi indica spre un element mai mare sau egal cu x sau in A.length. Pe scurt <tex>A[lo] < x \le A[hi] </tex> (consideram <tex>A[-1] = -\infty</tex> si <tex>A[A.length] = +\infty</tex>)
Sa vedem cum arata codul:
== code(c) |
int search(int[] A, int x) {
int hi = A.length, lo = -1, mid;
else
hi = mid;
}
if (hi ==== A.length || A[hi] != x)
if (hi == A.length || A[hi] != x)
return -1;
else
return hi;
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.