21xrx.com
2024-09-08 11:04:42 Sunday
登录
文章检索 我的文章 写文章
使用C语言编写二分搜索算法
2023-06-09 14:16:10 深夜i     --     --
二分搜索 数组 循环

实现原理:

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;

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复