顺序递增数组中,找到key首次出现的位置
1. 顺序递增数组中,找到key首次出现的位置
int find(int * arr , int length, int key){ int low = 0,high = length-1,mid; while(low <= high){ mid = (low + high)/2; if (arr[mid] < key){ low = mid + 1; }else if(arr[mid] > key){ high = mid - 1; }else{ if (mid == 0) return mid;//找到的key是第1个元素,直接返回 if (mid >= 1 && arr[mid-1] != key) return mid;//当前下标上一位不重复时,直接返回mid, else high = mid - 1;//其他继续循环,而不是return } } return -1; }