Binäre Suche nach dem Zielelement im Array a mit der Länge len in aufsteigender Reihenfolge
Wenn die Suche erfolgreich ist, geben Sie den Index zurück
Andernfalls geben Sie -1 zurück
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 | # include <stdio.h>
int print_num( int num )
{
printf( "print_num() num = %d\n" , num );
return 0;
}
typedef int ( *type_print_num_func )( int num );
int bsearch( int *a, int len, int target )
{
int low = 0, high = len, mid;
while ( low <= high )
{
mid = ( low + high )/2;
if ( *( a + mid ) == target )
return mid;
else if ( *( a + mid ) < target )
low = mid + 1;
else
high = mid - 1;
}
return -1;
}
int main( int argc, char *argv[] )
{
type_print_num_func func;
int ( *func2 )( int num );
print_num( 1 );
func = print_num;
func( 2 );
func2 = print_num;
func2( 3 );
system( "pause" );
return 0;
}
|
Nach dem Login kopieren
Weitere Artikel zur binären Suche nach Elementen in einem Array finden Sie auf der chinesischen PHP-Website!