Rumah > php教程 > PHP开发 > 二分法查找数组中的元素

二分法查找数组中的元素

高洛峰
Lepaskan: 2016-12-19 16:27:36
asal
1491 orang telah melayarinya

二分法查找升序长度为len的数组a中的target元素 
查找成功则返回下标 
否则,返回-1 

#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 ); 
 
 
/* 
二分法查找升序长度为len的数组a中的target元素 
查找成功则返回下标 
否则,返回-1 
*/
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;
}
Salin selepas log masuk



更多二分法查找数组中的元素相关文章请关注PHP中文网!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan