Mai intai trebuie sa te autentifici.
Diferente pentru multe-smenuri-de-programare-in-cc-si-nu-numai intre reviziile #4 si #5
Nu exista diferente intre titluri.
Diferente intre continut:
Urmatorul cod este de aproximativ $4$ ori mai rapid (am testat cu cautare binara ca in manual) , mai usor de inteles, mai flexibil si mai scurt... ce ati putea dori mai mult?
int N, A[N]; intbinary_search(intval){ int i, step;for (step=1;step< N;step <<= 1);for (i=0; step; step>>= 1)if (i+step< N && A[i +step]<=val) i +=step;returni; }
p(pre).
{@int N, A[N];@}
{@int binary_search(int val)@}
{@{@}
{@ int i, step;@}
{@ 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;@}
{@}@}
Procedura de mai sus face cautarea binara folosind puteri a lui 2 in ordine descrescatoare, practic incerc sa determin fiecare bit al rezultatului.
