Skip to content

Instantly share code, notes, and snippets.

@gwenhael-le-moine
Created April 20, 2010 03:40
Show Gist options
  • Save gwenhael-le-moine/371995 to your computer and use it in GitHub Desktop.
Save gwenhael-le-moine/371995 to your computer and use it in GitHub Desktop.
#include <stdio.h>
int bsearch( char to_search, char array[], int min, int max )
{
int middle = min + ( ( max - min ) / 2 );
if ( ( min == max ) && ( array[ min ] != to_search ) )
return -1;
if ( array[ min ] == to_search )
return min;
if ( array[ max ] == to_search )
return max;
if ( array[ middle ] == to_search )
return middle;
if ( to_search >= array[ middle ] ) {
return bsearch( to_search, array, middle, max );
}
else {
return bsearch( to_search, array, min, middle );
}
}
int main( int argc, char* argv[] )
{
char array[ 10 ] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };
fprintf( stdout, "%i\n", bsearch( argv[ 1 ][ 0 ], array, 0, sizeof( array ) ) );
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment