#include<stdio.h>
#include<Windows.h>
int main()
{
//十个元素的升序整形数组
int arr[]={1,3,5,7,9,11,13,15,17,19};
//要查找的数组元素
int toFind=9;
//计算数组的左右边界
int left=0;
int right=sizeof(arr)/sizeof(arr[0])-1;
while(left<=right)
{
int mid=(left+right)/2;//确定数组中间值的元素下标
if(arr[mid]>toFind {
right=mid-1;
}
else if(arr[mid]<toFind){
left=mid+1;
}
else{
printf("Got it! It is %d\n",mid);
}
}
if(left>right)
printf("Not found!");
system("pause");
return 0;
}
二分查找法查找想要的有序数组元素下标
最新推荐文章于 2022-07-26 20:18:19 发布