ホームページ >php教程 >PHP开发 >二分探索C言語実装

二分探索C言語実装

高洛峰
高洛峰オリジナル
2016-12-19 16:21:381439ブラウズ

二分検索:

a は検索対象の配列です。二分検索の前提条件は、a データがソートされていることです。 key は検索する変数、n は配列 a の長さです。

int binary( int *a, int key, int n )
{
int left = 0, right = n - 1, mid = 0;
mid = ( left + right ) / 2;
while( left < right && a[mid] != key )
{
if( a[mid] < key )
left = mid + 1;
key ) else if( a[mid] > key ) right = mid - 1;
mid = ( left + right ) / 2;
}
if( a[mid] == key ) return Mid;
return -1;
}

Call:

配列 b の下位部分を検索します。配列 a ターゲット位置 (b のデータが a に存在しない場合、代わりに -1 が使用されます)。

int main()

{
int a[] = {1,2,3,4,5,6,7,8,9,12,13,45,67,89,99,101,111,123,134,565,677};
int b[ ] = { 677, 1, 7, 11, 67 };
int i;
for( i=0; i
{
printf( "%dn", binary( a, b[i], sizeof(a)/ sizeof(a[0])));
}
return 0;
}



二分探索 C 言語の実装に関連するその他の記事については、PHP 中国語 Web サイトに注目してください

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。