二分查找c语言

导读 二分查找是一种在有序数组中查找特定元素的搜索算法。以下是一个简单的二分查找的C语言实现:```c include int binarySearch(int arr[],

二分查找是一种在有序数组中查找特定元素的搜索算法。以下是一个简单的二分查找的C语言实现:

```c

#include

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);

}

} else {

return -1; // 元素不存在于数组中,返回-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("元素不存在于数组中\n");

} else {

printf("元素在数组中的索引为:%d\n", result);

}

return 0;

}

```

这个程序首先定义了一个名为 `binarySearch` 的函数,该函数接受一个有序数组 `arr`,数组的左边界 `l` 和右边界 `r` 以及要查找的元素 `x` 作为参数。函数使用递归的方式实现二分查找。如果找到了元素 `x`,则返回其在数组中的索引;否则返回 `-1` 表示元素不存在于数组中。在 `main` 函数中,我们定义了一个已排序的数组和要查找的元素,然后调用 `binarySearch` 函数进行二分查找并输出结果。

版权声明:本文由用户上传,如有侵权请联系删除!