#include<stdio.h> #define N 10 int s[N] = {1, 3, 4, 8, 13, 14, 18, 20, 21, 25}; void print_data(void); int binary_search(int); int main(void){ int x; int i;
print_data(); i = binary_search(x); if(i == -1) { printf("The element %d is not in s\n", x); } else { printf("%d is found in s[%d]\n", x,i); } return 0; }
void print_data(void) { int i; for (i = 0; i < N ; i++) { printf("s[%d] = %d \n", i, s[i]); } }
int binary_search(int key) { int low = 0 ; int high = N - 1; int mid;while (low high) {
mid = (low + high) /2; printf("low = %2d, high = %2d, mid = %2d \n", low, high, mid); if (s[mid] == key ) { return (mid); } if (s[mid] > key) { high = mid - 1; } else { low = mid + 1 ; } } return -1; }