递归实现二分查找

//在已排序的数组中找到特定元素的数组下标
#include 

int reccurBinarySearch(int a[],int key,int left,int right);

int main(void){
    int a[1000],n,key,i;
    scanf("%d",&n);
    for(i=0;iscanf("%d",&a[i]);
    }
    scanf("%d",&key);
    printf("%d",reccurBinarySearch(a,key,0,n-1));
    return 0;
}

int reccurBinarySearch(int a[],int key,int left,int right){
    if(left<=right){
        int mid=(left+right)/2;
        if(a[mid]==key){
            return mid;
        }
        else if(keyreturn reccurBinarySearch(a,key,left,mid-1);
        }
        else{
            return reccurBinarySearch(a,key,mid+1,right);
        }
    }
    else{
        return -1;
    }
}


你可能感兴趣的:(基础算法)