C 语言实现二分查找:代码示例与详细剖析
以下是一个用 C 语言实现二分查找的示例代码: ```c #include <stdio.h> // 二分查找函数 int binarySearch(int arr[], int l, int r, int x) { while (l <= r) { int m = l + (r - l) / 2; // 检查中间元素 if (arr[m] == x) return m; // 如果中间元素大于目标值,在左半部分查找 if (arr[m] > x) r = m - 1; // 如果中间元素小于目标值,在右半部分查找 else l = m + 1; } // 未找到返回 -1 return -1; } // 测试案例 int main() { int arr[] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}; int n = sizeof(arr) / sizeof(arr[0]); int x = 12; int result = binarySearch(arr, 0, n - 1, x); if (result!= -1) printf("元素 %d 在数组中的索引为 %d\n", x, result); else printf("元素 %d 不在数组中\n", x); return 0; } ``` 在上述代码中,`binarySearch` 函数接受一个已排序的整数数组、左右边界索引和目标值。通过不断将搜索范围缩小为左半部分或右半部分,直到找到目标值或确定目标值不存在。在 `main` 函数中进行了测试。 ######[AI写代码神器 | 388点数解答 | 2024-09-19 10:56:10]
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)57
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)371
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)266
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)286
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)286
- Three.js 示例代码解析:优化场景渲染与注意要点(字节豆包 | 164点数解答 | 2025-02-27 23:30:20)283
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)343
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)494
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)380
- Linux开发:用find命令查找/usr目录下超1MB的文件(百度文心 | 153点数解答 | 2023-11-09 18:45:10)219
- 8 个实用命令,助 Linux 开发者轻松查找服务器平均负载!(百度文心 | 311点数解答 | 2023-11-09 18:47:10)237
- C++实现顺序存储结构基本操作:初始化、插入、删除等全解析(GPT | 1743点数解答 | 2024-09-26 00:20:17)297