算法题:二分查找的溢出考虑

来源:互联网 发布:罗马帝国艳情史 知乎 编辑:程序博客网 时间:2024/06/06 02:54
#include <iostream>using namespace std;int find_val(int a[],int n,int val){    int low = 0;    int high = n-1;    while(low<=high)    {        //mid=(high+low)/2;//可能溢出。        int mid = low+(high-low)/2;        if(a[mid]>val)            {                high = mid-1;            }        else if(a[mid]<val)            {                   low = mid+1;            }        else            {                return a[mid];            }    }    return -1;}int main(){    int a[]={1,2,3,4,5,6,7,8,9};    cout<<find_val(a,sizeof(a)/sizeof(int),6)<<endl;;    return 0;}
1 0
原创粉丝点击