21xrx.com
2025-03-24 01:01:55 Monday
文章检索 我的文章 写文章
使用C语言编写二分搜索算法
2023-06-09 14:16:10 深夜i     16     0
二分搜索 数组 循环

实现原理:

1. 定义一个有序数组

2. 定义数组的起始、结束位置,求出中间位置

3. 用循环不断将中间位置跟目标值进行比较,如果中间值小于目标值,则起始位置变为中间位置+1;如果中间值大于目标值,则结束位置变为中间位置-1;如果中间值等于目标值,则直接返回中间位置

4. 如果未找到目标值,则返回失败的结果

下面是代码实现:

#include 
int binarySearch(int arr[], int target, int size) {
  int start = 0;
  int end = size - 1;
  while (start <= end) {
    int mid = (start + end) / 2;
    if (arr[mid] == target)
      return mid;
     else if (arr[mid] < target) {
      start = mid + 1;
    } else
      end = mid - 1;
    
  }
  return -1;
}
int main() {
  int arr[] = 19;
  int target = 7;
  int size = sizeof(arr) / sizeof(arr[0]);
  int result = binarySearch(arr, target, size);
  if (result == -1) {
    printf("未找到目标值!\n");
  } else {
    printf("目标值在数组中的下标为:%d\n", result);
  }
  return 0;
}

  
  

评论区