Binäre Suche:
a ist das zu durchsuchende Array. Voraussetzung für die binäre Suche ist, dass die a-Daten sortiert sind. key ist die zu durchsuchende Variable und n ist die Länge des Arrays a.
int binär( 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;
else if( a[mid] > key )
right = mid - 1;
mid = ( left + right ) / 2;
}
if( a[mid] == key ) return mid;
return -1;
}
Aufruf:
Suchen Sie die Position des Index von Array b in Array a (wenn a Wenn die Daten in b nicht vorhanden sind, verwenden Sie stattdessen -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
{
print f( „ %dn“, binär( a, b[i], sizeof(a)/sizeof(a[0])));
}
return 0;
}
Weitere Artikel zur Implementierung der binären Suche in C-Sprache finden Sie auf der chinesischen PHP-Website