Am gasit recent o cautare binara care arata foarte interesant:
int bsearch (int a [], int n, int x) { //cauta pe x in a [0 .0. n - 1]
int i, base = 0, index;
for (i = n; i != 0; i >>= 1) {
index = base + (i >> 1);
if (a [index] == x)
return index;
if (a [index] < x) {
base = index + 1;
-- i;
}
}
return -1;
}
Nu am inteles chiar bine de ce functioneaza (si daca functioneaza). Ce ziceti? Seamana cu cautarea binara de la smenuri de programare.