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; if (mid >= 1 && arr[mid-1] != key) return mid; else high = mid - 1; } } return -1; }