INFOPedia : LSObinasysearch

HomePage :: Categorie :: Indice :: Ultime modifiche :: Ultimi commenti :: Login/Registrazione
La versione più vecchia di questa pagina è stata modificata il 2008-04-14 17:51:27 da IgnazioC []
Vista della pagina:

Esempio di ricerca binaria


#include <stdio.h>

int *search(int *v,int n,int k);
int main(void)
{
    int v[10]={'c','d','e','f','g','h','r','s','t','z'};
    int i,n=10;
    int k;  //el. da cercare.
    int *pos;
    for (i=0;i<n;i++)
        printf("%c ", v[i]);
    printf("\n");
    printf("Inserisci chiave: ");
    scanf("%c",&k);
    pos=search(v,n,k);
    if (pos!=-1)
        printf("Indirizzo: %d",pos-v+1);
    else
        printf("Elemento non presente");
}

int *search(int *v,int n,int k)
{
    if (n!=0)
    {
        if (v[n/2]==k)
            return &v[n/2];
        else
            if (k<v[n/2])
                return (search(v,n/2,k));
            else
                return search(&v[n/2+1],n/2,k);
    }

return -1;
}
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.1
La pagina è stata generata in 0.0591 secondi