当前位置: 首页 > 建站教程

c语言怎么用递归实现二分法查找

时间:2026-01-31 10:54:30

下面是使用递归实现二分法查找的C语言代码示例:

#include <stdio.h>int binarySearch(int arr[], int low, int high, int key) {if (low > high) {return -1; // key not found}int mid = low + (high - low) / 2;if (arr[mid] == key) {return mid; // key found at index mid} else if (arr[mid] < key) {return binarySearch(arr, mid + 1, high, key); // search in the right half} else {return binarySearch(arr, low, mid - 1, key); // search in the left half}}int main() {int arr[] = {2, 4, 6, 8, 10, 12, 14, 16};int n = sizeof(arr) / sizeof(arr[0]);int key = 10;int index = binarySearch(arr, 0, n - 1, key);if (index != -1) {printf("Element found at index: %d\n", index);} else {printf("Element not found\n");}return 0;}

在上面的代码中,binarySearch函数使用递归的方式实现了二分法查找。函数接受一个整型数组arr、查找范围的起始下标low、结束下标high和要查找的关键值key作为参数。函数首先计算中间元素的下标mid,然后分别判断arr[mid]key的大小关系,根据不同情况选择在左半部分或右半部分继续查找,直到找到目标元素或查找范围为空。

main函数中,我们定义了一个整型数组arr,并调用binarySearch函数来查找key=10在数组中的位置。最终输出查找结果。


上一篇:pycharm安装opencv库出错怎么解决
下一篇:springboot怎么指定controller的url
c语言
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素