#include#include #include using namespace std;int binSearch(int A[], int length, int key){ int L = 0, R = length - 1; while (L <= R){ int M = (L + R) / 2; if (A[M]>key) R = M-1; else if (A[M] < key) L = M+1; else //return M;若不做处理,在有重复值的情况下,返回下标不一定为第一个。 { if (A[M - 1] == key) { R = R - 1; } else{ return M; } } } return -1;}void main(){ int A[] = { 0, 1, 2, 3, 4, 4,5,5}; cout << binSearch(A, 7,4);}