思想:
实现二分搜索的程序代码
在这个示例中,binarySearch函数使用递归的方式实现二分。它接收一个数组arr、
搜索范的左边界 left和右边界right,以及目标值target。函数使用循环,不断更新搜索范围,
并在循环中比较中间元素与标值的大小关来决定搜索方向如果中间元素与目标值相等,
返回间元素的索引。当搜索范围缩小到 left > right` 时表示目标值不存在数组中,函数返回 -1。
#include "stdio.h"
int binarySearch(int arr[],int left,int right,int target)
{
int mid;
while(left <= right){
mid=(left+right)/2;
if(arr[mid]==target) return mid;
else if(arr[mid]<target) left = mid+1;
else right = mid-1;
}
return -1;//目标值不在数组中的时候,就返回-1
}
int main() {
int arr[] = {2, 7, 10, 13, 18, 20};
int length = sizeof(arr) / sizeof(arr[0]);
int target = 10;//目标值
int index = binarySearch(arr, 0, length - 1, target);
if (index != -1) {
printf("目标值 %d 在数组中的索引是: %d\n", target, index);
}
else {
printf("目标值 %d 不存在于数组中\n", target);
}
return 0;
}