#include <stdio.h> #include <stdlib.h> int BiSearch(int *a,int length,int key) { int low = 1,high = length,mid; while(low <= high) { mid = (low + high)/2; printf("(%d + %d)/2 = %d;/n",low,high,mid); if(a[mid] == key) return mid; else if(a[mid] > key) high = mid - 1; else low = mid + 1; } return 0; } int main(void) { int a[18]; for(int i = 1; i <= 17; ++i) a[i] = i; int iTemp = BiSearch(a,17,8); if(iTemp) printf("%d/n",iTemp); else printf("没有该key./n"); return 0; }