二分查找数组下标值等于数组值

#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); }

新文件夹
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。