用C语言写一个二分查找法
时间: 2023-05-29 21:06:10 浏览: 97
C语言二分查找法
以下是一个用C语言实现的二分查找法示例:
```c
#include <stdio.h>
int binarySearch(int arr[], int left, int right, int x)
{
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] < x)
left = mid + 1;
else
right = mid - 1;
}
return -1;
}
int main(void)
{
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 not found\n");
else
printf("Element found at index %d\n", result);
return 0;
}
```
在上面的代码中,我们定义了一个名为binarySearch的函数,该函数接收四个参数:一个整数数组arr,数组左边界left,数组右边界right和要查找的元素x。该函数使用while循环来执行二分查找操作,直到找到该元素或确定该元素不存在为止。如果找到该元素,则返回它在数组中的索引;否则,返回-1。
在main函数中,我们定义了一个整数数组arr,指定要查找的元素x为10,并通过调用binarySearch函数来查找该元素。最后,我们输出结果,如果找到该元素,则输出它在数组中的索引;否则,输出“Element not found”。
阅读全文