Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Cautare Binara  (Citit de 1092 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
MciprianM
Nu mai tace
*****

Karma: 87
Deconectat Deconectat

Mesaje: 324



Vezi Profilul
« : Octombrie 02, 2011, 21:40:20 »

Am gasit recent o cautare binara care arata foarte interesant:

Cod:
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.
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #1 : Octombrie 04, 2011, 22:21:50 »

Face exact acelasi lucru ca si cautarea binara din articolul mentionat de tine. Pe aceea esti sigur ca ai inteles-o?
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
MciprianM
Nu mai tace
*****

Karma: 87
Deconectat Deconectat

Mesaje: 324



Vezi Profilul
« Răspunde #2 : Octombrie 04, 2011, 22:46:22 »

In articolul mentionat mai sus, variabila pas contine puteri ale lui 2. Astfel putem obtine orice indice din sirul dat.
Acuma ca m-am mai gandit la cautarea asta, in cazul de fata, variabila i ia ca valori dimensiunea spatiului de cautare. Asa ca eu cred ca aduce mai degraba cu cautarea clasica.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines