顺序递增数组中,找到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;
            if (mid >= 1 && arr[mid-1] != key) return mid;
            else high = mid - 1;
        }
    }
    return -1;
}
原文地址:https://www.cnblogs.com/shijianchuzhenzhi/p/14880575.html