#include
#include
//查找递增数组中值等于下标值的这个数,存在返回下标,不存在返回-1 int BinarySearch(int T[],int n){ int low=1; //为了方便数值和下标值对应,low从1开始 int high=n; //数组共n+1位,最后一位下标为n int mid; while(low<=high){ //循环跳出条件low>high时跳出 mid=(low+high)/2; if(T[mid]==mid) //判断这个数值是否等于下标 return mid; else if(T[mid]>mid) //在左半段查找 high=mid-1; else low=mid+1; //在右半段查找 } return -1; //返回-1,代表没找到 }
int main(){ int a[]={0,-2,1,2,4,7}; //0号位不做查找,方便数值和下标值对应 int result=BinarySearch(a,5); //数组中实际用于查找的数为5个 printf("坐标值等于数值的数,其位置为:%d",result); }