例:N个有序数数列已放在一维数组中。下列程序中,函数fi的功能是:利用折半查找算法查找整数m在数组中的位置,返回其下标值;反之返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(Iow
代码如下:
#include#define N 10 void find(int a[], int m) { int low=0, high=N, mid ; while (low <= high) { mid=( low+high ) / 2 ; if( m < a[mid] ) high = mid - 1; else if( m >= a[mid] ) low = mid + 1 ; else return ( mid ) ; } return (-1); } main() { int i , a[N] = {-3, 4, 7, 9, 13, 45, 67, 89, 100, 180}, k, m ; for(i=0; i< N; i++) printf("%d ", a[i] ) ; printf("Enter m: ") ; scanf("%d", m ) ; k= find(a[], m ) ; if(k>0) printf("m=%d, index=%dn", m, k) ; else printf("Not be found!n") ; }



