******** fig2.9 ********** int binary_search( input_type a[], input_type x, unsigned int n ) { int low, mid, high; /* Can't be unsigned; why? */ /*1*/ low = 0; high = n-1; while( low <= high ) { /*2*/ mid = (low + high)/2; /*3*/ if( a[mid] < x ) /*4*/ low = mid + 1; else /*5*/ if( a[mid] > x ) /*6*/ high = mid - 1; else /*7*/ return( mid ); /* found */ } /*8*/ return( NOT_FOUND ); }