Diferente pentru blog/cautare-binara intre reviziile #7 si #6

Nu exista diferente intre titluri.

Diferente intre continut:

Mai vezi tot felul de variante, de exemplu sa testezi daca a[mid] e egal cu x si sa iesi din cautare mai repede. Asta nu ajuta in cazul general deci putem sari peste. Alta varianta e ca poti reduce ceva mai mult problema folosind hi = mid - 1 sau lo = mid + 1. Asta face putin mai greu de verificat invariantul cautarii si s-ar putea sa apara probleme la cazuri in care cautarea ajunge la una dintre marginile sirului.
Alta solutie care e folosita frecvent de membrii infoarena face cautare binara folosind puterile lui 2. Puteti vedea ca arata destul de misto:
 
== code(c) |
int binary_search(int A, int val) {
  int i, step, N = A.length;
  for (step = 1; step < N; step <<= 1);
  for (i = 0; step; step >>= 1)
    if (i + step < N && A[i + step] <= val)
    i += step;
  return i;
}
==
Alta solutie care e folosita frecvent pe infoarena face cautare binara folosind puterile lui 2. Puteti vedea ca arata destul de misto:
Mie nu imi place aceasta varianta. Un dezavantaj ar fi ca un programator nou care nu stie trucul o sa inteleaga mai greu codul, si nu stiu daca e la fel de usor de modificat ca sa gasesti succesorul lui x sau ultima aparitie a lui x si asa mai departe.

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.