#include <cstdio>

int binarySearch(int A[],int left,int right,int x){
    //[left,right],初值[0,n-1]。
    int mid;
    //left和right的中点。
    while(left<=right){     //如果left>right就没有闭区间了。
        mid=(left+right)/2; //取中点。
        if(A[mid]==x)   return mid; //找x,返回下标。
        else if(A[mid]>x){  //中间数大于x。
            right=mid-1;    //左子区间[left,mid-1]查找。
        }else{              //中间数小于x。
            left=mid+1;     //右子区间[mid+1,right]查找。
        }
    }
    return -1;
}

int main(){
    const int n=10;
    int A[n]={1,3,4,6,7,8,10,11,12,15};
    printf("%d %d\n",binarySearch(A,0,n-1,6),binarySearch(A,0,n-1,9));
    return 0;
}

标签: none

已有 4 条评论

  1. 你的文章内容非常专业,让人佩服。http://www.enkicrafter.com

  2. 你的文章让我感受到了快乐,每天都要来看一看。http://www.smkj56.com

  3. 你的文章内容非常用心,让人感动。 https://www.yonboz.com/video/98239.html

  4. 你的文章让我心情愉悦,真是太棒了! http://www.55baobei.com/jTpJulYe8Z.html

添加新评论