1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#include <stdio.h>
#include <stdlib.h>
#define SIZE 1024
int binary_search( int tab_valeur[], int l, int r, int x )
{
while( l <= r )
{
int mem = l + (r-l) / 2;
if( tab_valeur[mem] == x )
{
return mem;
}
else if( tab_valeur[mem] < x )
{
l = mem + 1;
}
else
{
r = mem -1;
}
}
return -1;
}
int main( int argc, char *argv[] ){
int i;
int tab_valeurs[SIZE];
for( i = 0; i < SIZE; i++ )
{
tab_valeurs[i] = i;
}
for( i = 0; i < SIZE; i++ )
{
printf("%d\n", tab_valeurs[i]);
}
int resultat = binary_search(tab_valeurs, 0, SIZE - 1, 666 );
if( resultat == -1 ){
printf("Aucune valeur trouvée\n");
}
else
{
printf("Valeur trouver à l'index %d = %d\n", resultat, tab_valeurs[resultat] );
}
return 0;
} |