C语言 二分法代码示例
时间: 2024-10-16 10:01:09 浏览: 89
在C语言中,二分查找(Binary Search)是一种用于已排序数组或列表中快速定位特定元素的算法。它通过每次将搜索范围减半来进行查找,效率较高。下面是一个简单的二分查找的代码示例:
```c
#include <stdio.h>
int binarySearch(int arr[], int l, int r, int x) {
if (r >= l) {
int mid = l + (r - l) / 2;
// 如果中间元素正好是我们正在寻找的
if (arr[mid] == x)
return mid;
// 如果中间元素大于目标值,就在左半部分继续搜索
else if (arr[mid] > x)
return binarySearch(arr, l, mid - 1, x);
// 否则,在右半部分搜索
else
return binarySearch(arr, mid + 1, r, x);
}
// 元素不在数组中,返回-1表示未找到
return -1;
}
int main() {
int arr[] = {2, 3, 4, 10, 40};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 10; // 要查找的元素
int result = binarySearch(arr, 0, n - 1, x);
if(result != -1)
printf("Element is present at index %d", result);
else
printf("Element is not present in array", result);
return 0;
}
```
在这个例子中,`binarySearch`函数接受一个整数数组、起始索引 `l`、结束索引 `r` 和要查找的目标值 `x`。如果找到该元素,函数返回其索引;否则返回 `-1` 表示未找到。
阅读全文