#include<stdio.h>
#include<stdlib.h>
int main(){
double arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int to_find = 7;
//先定义两个下标,指向数组的第一个和最后一个元素
int left = 0;
int right = sizeof(arr) / sizeof(arr[0])-1;
int mid = 0;
//[left,right] 当前要进行查找的区间
while (left <= right){
mid = (left + right) / 2;
if (to_find < arr[mid]){
//应该在 mid 左侧继续查找
right = mid - 1;
}else if (to_find > arr[mid]){
//应该在 mid 右侧查找
left = mid + 1;
}else {
//找到了
break;
}
}
if (left <= right){
printf("找到了!%d\n", mid);
}
else {
printf("没找到!%d\n");
}
system("pause");
return 0;
}
写代码可以在整型有序数组中查找想要的数字(二分查找)
最新推荐文章于 2022-08-03 23:32:05 发布