1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| int binarySearch(int arr[], int n, int key) { int low = 0; int hight = n-1; int mid, midVal; while(low <= hight){ mid = (low+hight)/2; midVal = arr[mid]; if(midVal < key) low = mid+1; else if(midVal > key) hight = mid-1; else return 1; }
return 0; }
int main(int argc, char *argv[]) { int key=0; int a[8]={-32, 12, 16, 24, 36, 45, 59, 98}; for(int i=0; i<sizeof(a)/sizeof(a[0]); i++) printf("%d ", a[i]); printf("\n"); printf("Please input the data.\n"); scanf("%d", &key); int ret = binarySearch(a, sizeof(a)/sizeof(a[0]), key); if (1 == ret) printf("the key %d is exits.\n", key); else printf("the key %d is not exits.\n", key);
return 0; }
|