int Binary_Search(int a[], int n, int len){ if(len < 0 || a == NULL) return ERROR; int low = 0, high = len – 1, mid; while(low <= high){ mid = (high - low) / 2 + low; //最好不用mid=(high + low)/2, 可能溢出 if(a[mid] == n) return mid; else if(a[mid] < n) low = mid + 1; else high = mid - 1; } } return -1; //查找失败 }