二分法查找c语言程序

导读 二分查找是一种在有序数组中查找特定元素的搜索算法。它的工作原理是每次比较目标值与中点值,然后根据比较结果调整搜索范围。以下是使用C...

二分查找是一种在有序数组中查找特定元素的搜索算法。它的工作原理是每次比较目标值与中点值,然后根据比较结果调整搜索范围。以下是使用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;

// 如果元素小于中间元素,则在左半部分查找

if (arr[mid] > x)

return binarySearch(arr, l, mid - 1, x);

// 否则元素在右半部分查找

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("元素在数组中的索引为 %d", result);

} else { // 如果未找到元素,则打印相应的消息

printf("元素不在数组中");

}

return 0;

}

```

这个程序首先定义了一个名为 `binarySearch` 的函数,该函数接受一个整数数组、数组的左边界和右边界以及要查找的元素作为输入。然后,该函数通过递归地查找元素来缩小搜索范围,直到找到元素或确定元素不存在于数组中。在主函数中,我们定义了一个已排序的数组和一个要查找的元素值,然后调用 `binarySearch` 函数来执行二分查找算法。最后,我们根据查找结果打印相应的消息。

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