首页 > 要闻简讯 > 数码网络科普 >

二分查找c语言

发布时间:2024-12-07 09:47:37来源:

二分查找是一种在有序数组中查找特定元素的搜索算法。以下是一个简单的二分查找的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` 函数进行二分查找并输出结果。

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。