在一个有序 数组中查找具体的某个数字n。 编写int binsearch(int x, int v[], int n); 功能:在v[0]<=v[1]<=v[2] <= ….<=v[n-1]的数组中查找x.字
#include <stdio.h>
#include <stdlib.h>
int main(){ //用二分查找实现数字的查找
int arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int to_find = 8;
int left = 0; //首元素的下标
int right = sizeof (arr) / sizeof(arr[0]) - 1; //最后一个元素的下标
while (left <= right){
int mid = (left + right) / 2;
if (to_find < arr[mid]){
right = mid - 1; //查找的数字在 mid 的左边
}
else if (to_find > arr[mid]){
left = mid + 1; //查找的数字在 mid 的右边
}
else{
break;
}
}
if (left <= right){
printf("找到了!\n");
}
else{
printf("没找到!\n"); //循环结束了,代表没找到指定数字
}
system("pause");
return 0;
}